我希望选出一个仅包含同一表中列1、2、3、4内容的并集的单独列。由于SUBQUERY
和CONDITION
很复杂,我感觉这样做是错误的方式:
SELECT COL1 FROM SUBQUERY WHERE CONDITION
UNION
SELECT COL2 FROM SUBQUERY WHERE CONDITION
UNION
SELECT COL3 FROM SUBQUERY WHERE CONDITION
UNION
SELECT COL4 FROM SUBQUERY WHERE CONDITION
UNION
SELECT COL5 FROM SUBQUERY WHERE CONDITION
由于这个查询在性能和编码风格上都不太好,因此在Oracle中是否有更好的语法呢?
P.S.
如果以下伪代码是正确的,那就完美了:
SELECT COL1 UNION COL2 UNION COL3 UNION COL4
FROM
SUBQUERY WHERE CONDITION;
SUBQUERY
是相同的吗?只是WHERE CONDITION
不同吗? - D-Shihwith
子句可以帮助一点。with SUBQUERY as (select ...) SELECT DISTINCT * FROM ...
- PKeyUNION
上使用DISTINCT
是多余的。UNION
操作会删除重复项。你是不是想用UNION ALL
? - Kaushik Nayak