Test data:
Code:
select ltrim(MAX(SYS_CONNECT_BY_PATH(rn, '-')), '-') col, t2.id, t2.pid
from (select t1.*,
ROW_NUMBER() OVER(PARTITION BY c_level, PID ORDER BY ID) AS RN
from (select t.id, t.pid, max(level) c_level
from test t
connect by prior id = pid
group by t.id, t.pid) t1) t2
start with c_level = 1
connect by prior id = pid
group by t2.id, t2.pid, t2.rn;
Result:
本文介绍了如何使用SQL语句生成序列号,特别是在处理层次结构数据时。通过示例代码展示了利用ROW_NUMBER()函数结合CONNECT BY子句进行序列化的方法,适用于具有父子关系的数据表。
2551

被折叠的 条评论
为什么被折叠?



