我有一个SQL Server存储过程,我想将一个varchar
逗号分隔的值传递给一个IN
函数.例如:
DECLARE @Ids varchar(50);
SET @Ids = '1,2,3,5,4,6,7,98,234';
SELECT *
FROM sometable
WHERE tableid IN (@Ids);
Run Code Online (Sandbox Code Playgroud)
这当然不起作用.我收到错误:
将varchar值'1,2,3,5,4,6,7,98,234'转换为数据类型int时转换失败.
如何在不诉诸构建动态SQL的情况下完成此任务(或相对类似的东西)?
我有一种情况,我在页面上显示记录,我需要一种方法让用户选择要在另一页上显示的那些记录的子集.这些记录不存储在任何地方,它是动态生成的东西.我知道我可以使用jquery将逗号分隔的值传递给我的其他网页,但我不确定在sql中最好的方法是说哪个uniqueid在这个id列表中不在表等中我我知道我可以用一堆ors动态构造sql,但这看起来像是一个黑客.还有其他人有什么建议吗?