标签:
首先要创建一个截取字符串的函数
函数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 end
这个函数的作用比喻:
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‘)
标签:
原文地址:http://www.cnblogs.com/wei325/p/4726457.html