oracle9i及以前的版本中,没有可直接支持的分组后,用某个特殊字符进行分隔列 像10g有wm_concat,11g可以用listagg(字段,分隔字符) within group(order by 字段) oracle select 分组列,ltrim(max(sys_connect_by_path(字符串列,',')),',')from (select 分组列
oracle9i及以前的版本中,没有可直接支持的分组后,用某个特殊字符进行分隔列
像10g有wm_concat,11g可以用listagg(字段,分隔字符) within group(order by 字段)
oracle select 分组列,ltrim(max(sys_connect_by_path(字符串列,',')),',')from (select 分组列,字符串列,rank()over(order by 分组列) + row_number()over(order by 分组列) rn,row_number()over(partition by 分组列 order by 分组列) rmfrom 表)start with rm=1connect by prior rn=rn-1group by分组列;--在from 表这个地方你可以过滤掉这些空值--或在ltrim(max(sys_connect_by_path(字符串列,',')),',')这个地方--再加个这个就可以rtrim(ltrim(max(sys_connect_by_path(字符串列,',')),','),',')
