我想做这样的事情:
DECLARE @list nvarhcar(200) SET @list = 'VALUE1,VALUE2,VALUE3'
Select * from foo where field in (@list)
直到今天,我都使用sp_executeSQL过程,我自己的数据库函数csv2table和subselect解决了问题,但是我认为这不是很干净。
有没有办法解决不使用动态SQL?有直接方法吗?
我正在使用Microsoft Sql Server 2005。
谢谢!
最佳答案
您可以尝试以下操作:谢谢
DECLARE @list nvarchar(200)
SET @list = 'VALUE1,VALUE2,VALUE3'
SELECT * FROM foo WHERE CHARINDEX(',' + field + ',', ',' + @list + ',') > 0
关于sql - 使用变量过滤'IN'子句中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8519506/