gpt4 book ai didi

来自同一子查询的列的 SQL 联合为一个

转载 作者:行者123 更新时间:2023-12-04 22:16:25 25 4
gpt4 key购买 nike

我想选择一个列作为同一个表的第 1、2、3、4 列中内容的联合。自 SUBQUERYCONDITION很复杂我觉得这是错误的方法:

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 中是否有更好的语法?

附言

如果只有以下伪代码是正确的……那就完美了:
SELECT COL1 UNION COL2 UNION COL3 UNION COL4 
FROM
SUBQUERY WHERE CONDITION;

最佳答案

您可以使用 UNPIVOT :

select * from 
(select 'a' col1, 'b' col2, 'c' col3, 'd' col4, 'e' col5 from dual)
unpivot (
united_columns for subquery_column in ("COL1", "COL2", "COL3", "COL4", "COL5"));

SUBQUERY_COLUMN UNITED_COLUMNS
--------------- --------------
COL1 a
COL2 b
COL3 c
COL4 d
COL5 e
放置您的 select * from subquery where condition而不是
select 'a' col1, 'b' col2, 'c' col3, 'd' col4, 'e' col5 from dual
更多信息 UNPIVOT得到这个想法: http://www.oracle.com/technetwork/articles/sql/11g-pivot-097235.html

关于来自同一子查询的列的 SQL 联合为一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49231702/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com