首页 > 开发 > 综合 > 正文

sql储存过程in(多个参数)

2024-07-21 02:46:07
字体:
来源:转载
供稿:网友
sql储存过程in(多个参数)

首先要创建一个截取字符串的函数

函数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 
View 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')


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表