SQL Server:如何解决WHERE IN的128个值限制

Der*_*rek 2 sql sql-server

我正在写这样的查询

SELECT *
FROM table
WHERE id IN (thousands of ids)
Run Code Online (Sandbox Code Playgroud)

但这是行不通的,因为WHERE IN在我们的SQL Server版本中,的值限制为128。

有没有一种方法可以使用带有联接的子查询或临时表?

任何帮助表示赞赏!

Gio*_*sos 5

您可以使用VALUES来构造一个内联表,其中包含要考虑的所有值,然后JOIN到此表:

SELECT t1.*
FROM table AS t1
INNER JOIN (VALUES (10), (20), (12), ... ) AS t2(id) 
ON t1.id = t2.id
Run Code Online (Sandbox Code Playgroud)