小编典典

从逗号连接的列表创建SQL表

sql

我正在运行SQL Server,并且有一个存储过程。我想用WHERE IN子句做一条选择语句。我不知道列表会持续多久,所以我尝试了以下方法

SELECT * FROM table1 WHERE id IN (@idList)

在此解决方案中,@ idList是varChar(max)。但这是行不通的。我听说过要传递表值,但是我对如何做到这一点感到困惑。任何帮助都会很棒


阅读 161

收藏
2021-04-14

共1个答案

小编典典

我建议使用一个函数来拆分传入列表(使用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
2021-04-14