ORA-01795, limit on in clause
遇到问题: 实施过程中 oracle 报错 ORA-01795, limit on in clause, 发现是SQL IN 语句中的条件从ZZ表中拼接而成。 SELECT * FROM T1 WHERE T1.VAL in ('1111', '2222', ... more than 1000 here ); 相关调整方案: -- 1 子查询1 SELECT VAL FROM T1 WHERE T1. VAL IN ( SELECT VAL FROM T2 ); -- 2. 子查询2 SELECT VAL FROM ( SELECT DISTINCT VAL FROM T2 ) B WHERE B.VAL=A.VAL -- 3. JOIN SELECT VAL FROM ( SELECT DISTINCT VAL FROM T2 ) B JOIN A ON B.VAL=A.VAL -- 4. EXISTS SELECT VAL FROM T1 A WHERE EXISTS ( SELECT 1 FROM T2 WHERE A.VAL=VAL ); 使用IN还是EXISTS 以下引用oracle ASK TOM 中描述: ...