我正在运行SQL Server,并且有一个存储过程。我想用WHERE IN子句做一条选择语句。我不知道列表会持续多久,所以我尝试了以下方法
SELECT * FROM table1 WHERE id IN (@idList)
在此解决方案中,@ idList是varChar(max)。但这是行不通的。我听说过要传递表值,但是我对如何做到这一点感到困惑。任何帮助都会很棒
我建议使用一个函数来拆分传入列表(使用Martin在其评论中放置的[链接](https://codingdict.com/questions/209352)。
将split函数的结果存储在临时表或表变量中,并将其联接到查询中,而不是WHERE子句中
select * into #ids from dbo.Split(',', @idList) select t.* from table1 t join #ids i on t.id = i.s