首先要創建一個截取字符串的函數
函數SqlitIn的第一個參數是儲存過程要in的字符串,第二個參數是分隔符
1 CREATE function [dbo].[SplitIn](@c varchar(100),@split varchar(2)) 2 returns @t table(col varchar(20)) 3 as 4 begin 5 while(charindex(@split,@c)<>0) 6 begin 7 insert @t(col)values (substring(@c,1,charindex(@split,@c)-1)) 8 set @c=stuff(@c,1,charindex(@split,@c),'') 9 end 10 insert @t(col)values(@c) 11 return 12 endView Code
這個函數的作用比喻:
select col from SplitIn('00001,00002,00003',',') 得到的結果是
即把傳入的字符串'00001,00002,00003' 根據逗號分割,變成一個只有一列的表
最后儲存過程調用這個函數
@id='00001,00002,00003'
select * from A where id in(select col from SplitIn(@id,',')) 就ok 了
上面這句相當于select * from A where id in('00001','00002','00003')
新聞熱點
疑難解答