我有一个存储过程,并且我将逗号分隔值的列表传递为@ At1
Create spGetProducts @At1 VARCHAR(200)
begin
select * from tblProducts where Category1 IN (SELECT * FROM CSVToTable(@At2))
end
函数CSVToTable基本上使用逗号分隔的值并将它们放在表中。
问题是我想与IN运算符一起使用LIKE通配符,但是不起作用。
因此,如果我在Category1行中有一个测试,并且CSVTOTABLE将返回值“ es”,则它将选择该行,就像我有%es%一样。基本上,我只想在使用in运算符时在逗号分隔的值中使用百分号。
我正在使用SQL Server 2012
编辑
我的CSVTABLE返回一个列表,每一行都有一个逗号分隔的值。
用JOIN ON代替IN
select distinct t.* from tblProducts t
inner join CSVToTable(@At2) f
on t.category1 like f.field1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句