drop table temp ;
create table temp ( id number , st varchar2(100), end varchar2(100)) ;
insert into temp values( 1 , 11,null) ;
insert into temp values( 1 , 66,null) ;
insert into temp values( 1 , 33,null) ;
insert into temp values( 1 , null,22) ;
insert into temp values( 1 , null,55) ;
insert into temp values( 2 , 33,null) ;
insert into temp values( 2 , 77,null) ;
insert into temp values( 2 , 11,null) ;
insert into temp values( 2 , null,22) ;
insert into temp values( 2 , null,55) ;
insert into temp values( 2 , null,99) ;
commit;
select * from temp ;
select t2.id
,regexp_replace(regexp_replace(ltrim(max(sys_connect_by_path(st,',')),','),'[,]{2,}',','),',$','')
,regexp_replace(regexp_replace(ltrim(max(sys_connect_by_path(end,',')),','),'[,]{2,}',','),',$','')
from (
select t1.*, lead(le1) over(partition by id order by le1 desc) le2 from
( select T.*,
ORACLE 多字段排序再合并
最新推荐文章于 2022-04-19 12:01:20 发布
![](https://img-home.csdnimg.cn/images/20240611030827.png)