【发布时间】:2012-09-22 00:37:12
【问题描述】:
我想在 NOT IN 子句中使用逗号分隔的 id。 我正在使用oracle 11g。
select * from table where ID NOT IN (1,2,3,4,...,1001,1002,...)
结果
ORA-01795: maximum number of expressions in a list is 1000
我不想使用临时表。我正在考虑这样做
select * from table1 where ID NOT IN (1,2,3,4,…,1000) AND
ID NOT IN (1001,1002,…,2000)
还有其他更好的解决方法吗?
【问题讨论】:
-
No..id 是不可预测的。
-
这些 ID 的值从何而来?
-
不使用临时表的动机是什么?
-
上述查询的 SQL 在哪里?客户端?在存储过程、函数、包中?还是别的地方?