我正在写这样的查询
SELECT *
FROM table
WHERE id IN (thousands of ids)
但这行不通,因为在我们的 SQL Server 版本中,WHERE IN
的值限制为 128。
有没有办法使用带有连接的子查询或临时表来做到这一点?
感谢任何帮助!
最佳答案
您可以使用 VALUES
为了构造一个包含所有要考虑的值的内嵌表,然后JOIN
到这个表:
SELECT t1.*
FROM table AS t1
INNER JOIN (VALUES (10), (20), (12), ... ) AS t2(id)
ON t1.id = t2.id
关于SQL 服务器 : how to work around WHERE IN limit of 128 values,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37012509/