比如下面,第2行的第1列=第1行的第2列,就把第2行与第1行合并成一行,下面行类似 col1 col2 A B B C C D E F F G H J
select rownum,c.res from (select max(b.root)||','||wmsys.wm_concat(b.col2) res from (select connect_by_root(a.col1) root,a.col2 from tt a connect by prior a.COL2=a.COL1 order by a.COL1,a.col2) b where b.root not in (select col2 from tt ) group by b.root order by b.root) c
select row_number() over(order by rt) id, ph from (select ltrim(sys_connect_by_path(col1, ','), ',') ph, connect_by_root(col1) rt, row_number() over(partition by decode(connect_by_isleaf, 1, col2) order by level desc) rk from t where connect_by_isleaf = 1 connect by col1 = prior col2) where rk = 1
比如下面,第2行的第1列=第1行的第2列,就把第2行与第1行合并成一行,下面行类似
col1 col2
A B
B C
C D
E F
F G
H J
(select max(b.root)||','||wmsys.wm_concat(b.col2) res from
(select connect_by_root(a.col1) root,a.col2
from tt a
connect by prior a.COL2=a.COL1
order by a.COL1,a.col2) b
where b.root not in (select col2 from tt )
group by b.root
order by b.root) c
from (select ltrim(sys_connect_by_path(col1, ','), ',') ph,
connect_by_root(col1) rt,
row_number() over(partition by decode(connect_by_isleaf, 1, col2) order by level desc) rk
from t
where connect_by_isleaf = 1
connect by col1 = prior col2)
where rk = 1