在oraclesql中,如何将多列的值组合成一个逗号分隔的列?

o4tp2gmn  于 2021-08-09  发布在  Java
关注(0)|答案(2)|浏览(431)

我需要创建一个列,该列使用逗号','组合和分隔上一列中的所有值
我无法使用listag,因为我正在尝试合并多个列而不是行。
下面是一个结果列的示例,谢谢。

6ojccjat

6ojccjat1#

使用字符串串联:

select trim(leading ',' from
             (case when column1 is not null then ',' || column1 end) ||
             (case when column2 is not null then ',' || column2 end) ||
             (case when column3 is not null then ',' || column3 end)
           )
zu0ti5jz

zu0ti5jz2#

这也使用了字符串串联,但略有不同

SELECT 
SUBSTR(
    REPLACE(
    ', ' || NVL(column1,'!!') || ', ' || NVL(column2,'!!') || ', ' || NVL(column3,'!!')
    ,', !!','')
,3,100)

相关问题