sql - 使用变量过滤'IN'子句中​​的字段

标签 sql sql-server select csv

我想做这样的事情:

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/

相关文章:

mysql - 计算两个 SELECT 的差异时出现运行时错误

java - hibernate 无法识别数据库中已定义的约束

.net - 实体以不正确的顺序保存而没有暴露外键

sql - 有人可以帮我指出这个简单的 WHERE 子句有什么问题吗?

mysql计算select中的百分比

sql - 数据如何加载到sql server内存中

mysql - 每个用户 ID 的唯一产品 ID 的更新率

javascript - Nodejs 到 MSSQL 十进制数字问题

mysql - 使用 JOIN ON 处理 sql SELECTS 中的 null

mysql - 获取组在MySQL中的位置