SQL 服务器 : how to work around WHERE IN limit of 128 values

标签 sql sql-server

我正在写这样的查询

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/

相关文章:

SQL Server 查询需要 3 分 40 秒。如何改善执行时间?

SQL 服务器 : group by week off by 1 day

sql - 求和分值问题(处理舍入误差)

mysql - 自加入和更新

sql - 如何在sqlite中重用子查询的结果

java - Android中sqlite和sql server(crud操作)两种方式同步

sql-server - 在 SQL Server 中存储 'dictionaries' 和 'arrays'

SQL Server : how to add new identity column and populate column with ids?

mysql - SQL查询显示唯一记录

mysql - 如何获得具有相同截止标记的行集?