笔记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]