oracle将多列进行合并

select 外键ID, ltrim(max(sys_connect_by_path(name,',')),',') temp_name from (select
                              外键ID,
                              name,
                               row_number() over(partition by 外键IDorder by 外键ID, name) rank
                          from table)
                          start with rank=1
                          connect by rank - 1 = prior rank
                          and 外键ID= prior 外键ID
                       group by 外键ID
合并之前数据如下:
外键ID name
001 AAA
001 BBB
001 CCC
002 DDD
002 EEE
合并之后数据如下:
外键Id temp_name
001 AAA,BBB,CCC
002 DDD,EEE

 
原文地址:https://www.cnblogs.com/malcolm/p/2702982.html