【发布时间】:2016-08-06 17:20:30
【问题描述】:
我收到了错误
ORA-01795 列表中的最大表达式数为 1000
对于下面的查询
select emp_id, emp_name, emp_code
from emp e
where emp_id in (001,002,005,006....18000);
我需要在IN 子句中放入 18000 条记录。我怎样才能做到这一点?如何修改给定的查询?
【问题讨论】:
-
将 18000 条记录放在一个表中并加入。
-
您完全在滥用
IN子句。如果你真的只想检查1到18000之间的所有值,那么你可以用where emp_id between 1 and 18000来表达。这对你来说还不够好吗?你想做什么? -
all the previous questions 的回答对您没有帮助吗?如果不是,为什么?值来自哪里,您从哪里运行查询? (如果您有一个外部列表,例如在 Java 数组中,我可能会使用带有 member-of 的表集合,但这取决于..)