【发布时间】:2019-01-23 08:52:20
【问题描述】:
我有从 VIEW 执行数据的 SQL 查询。在这个查询中,我有 4 个参数,所有参数数据都存储在另一个表中。 3个参数有数据在表中,1个参数没有记录。 3个参数共有“1080”条记录,但本次查询执行“16000”条记录。
我的 SQL 查询:
SELECT DISTINCT COL1, COL2, COL3, COL4
FROM TABLE
WHERE (COL1 IN (SELECT VAL FROM RPPARAMLIST where flg = 'I') OR COL1 = COL1)
AND (COL2 IN (SELECT TO_NUMBER(VAL) FROM RPPARAMLIST where flg = 'P') OR COL2 = COL2)
AND (COL3 IN (SELECT TO_NUMBER(VAL) FROM RPPARAMLIST where flg = 'C') OR COL3 = COL3)
AND (COL4 IN (SELECT TO_NUMBER(VAL) FROM RPPARAMLIST where flg = 'U') OR COL4 = COL4);
当我删除 WHERE CLAUSE 中的 OR 条件时,则显示空记录。
样本数据:
1080 条记录
输出数据:
13619 条记录
【问题讨论】:
-
分享样本数据及其预期输出
-
使用
OR COL1 = COL1时会得到所有数据,排除所有COL1为null