2013-10-10 33 views
0

在SQL查询中IN()内传递的值的数量限制是多少?我一直在这个网上寻找,但没有找到我正在寻找的答案?对IN的限制()

+0

有多难你看?我花了不到一分钟的时间搜索了一个“oracle list item limit”的搜索字符串。 –

回答

2

当明确指出限制为1000,即:

select * from the_table where id in (1, 2, ..., 1000) 

这是documentation on the IN conditon

最多可以指定在expression_list 1000个表达式。

当没有明确说明没有任何限制:

select * from table1 where id in (select id from table2) 

虽然有用经常有路过这许多个或多个值的SELECT的更好的方法。可能值得考虑一些描述或JOIN的参考表。

参见:

+0

那么如果IN()不够,最好的选择是什么?假设我们有大的查询,其中一列ColumnA在运行时(我正在谈论动态地考虑值)时将不得不考虑许多值(> 1000)。我不知道我是否正确,例如, – user2824874