oracle将多列进行合并

Posted on 2012-09-25 21:20  关心  阅读(328)  评论(0)    收藏  举报

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

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3