gpt4 book ai didi

sql - 将多列值合并到一行的一列中 Oracle SQL

转载 作者:行者123 更新时间:2023-12-02 20:23:17 26 4
gpt4 key购买 nike

我有多个列需要聚合到单行的列中。

之前

Table name: columnMerger
colNum col1 col2 col3
1 a b c

之后

colNum      col1234
1 a, b, c

第 1 步,我使用 unpivot 将所有内容合并到一列中

 select colNum, value from columnMerger unpivot (value for node (col1, col2, col3)); 

结果,

colNum  value
1 a
1 b
1 c

第 2 步,引入 listagg,合并列,但出现错误

“单行子查询返回多行”

select colNum, listagg((
select distinct value from columnMerger unpivot (value for node (col1, col2, col3)), ',')
within group (order by colNum) from columnMerger group by colNum;

如有任何帮助,我们将不胜感激,谢谢。

最佳答案

您不需要为此使用 listagg,您可以按如下方式连接所有列 -

select colnum, col1||','||col2||','||col3 as col1234
from columnMerger

COLNUM COL1234
1 a,b,c

关于sql - 将多列值合并到一行的一列中 Oracle SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50729151/

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