笔记214 sqlserver中想用in判断范围,但只能输入一个字符串参数,如何拆字符串然后动态拼in()里面的内容呢

笔记214 sqlserver中想用in判断范围,但只能输入一个字符串参数,如何拆字符串然后动态拼in()里面的内容呢

 1 --sqlserver中想用in判断范围,但只能输入一个字符串参数,如何拆字符串然后动态拼in()里面的内容呢
 2 DROP TABLE #t
 3 --> 测试数据:#t
 4 CREATE TABLE #t
 5     (
 6       [id] INT ,
 7       货品编号 NVARCHAR(20) ,
 8       库存查询 VARCHAR(10)
 9     )
10 INSERT  #t
11         SELECT  1 ,
12                 'B1' ,
13                 '库存有'
14         UNION ALL
15         SELECT  2 ,
16                 'B3' ,
17                 '库存无'
18         UNION ALL
19         SELECT  3 ,
20                 'B2' ,
21                 '库存无'
22         UNION ALL
23         SELECT  4 ,
24                 'B2' ,
25                 '库存无'
26         UNION ALL
27         SELECT  5 ,
28                 'B4' ,
29                 '库存有'
30         UNION ALL
31         SELECT  6 ,
32                 'B1' ,
33                 '库存无'
34 
35 SELECT * FROM #t
36 
37 
38 BEGIN
39 DECLARE @货品编号 NVARCHAR(MAX)
40 SET @货品编号 = 'B1,B2'
41   insert into [#t]  select * from [#t] where CHARINDEX(',' + 货品编号 + ',', ',' + @货品编号 + ',') > 0
42 END
43 SELECT * FROM [#t]

 

posted @ 2013-08-04 13:37  桦仔  阅读(1314)  评论(0编辑  收藏  举报