码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2015-08-13 11:51:39      阅读:336      评论:0      收藏:0      [点我收藏+]

标签:

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

函数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‘)

 

 

 

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

标签:

原文地址:http://www.cnblogs.com/wei325/p/4726457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!