根据您在问题中提供的信息,很难说出您真正想要实现的目标,但在我看来,您想为每个子树显示子树ID
(主树从 ID=1 开始,让我们对它们进行排序方式,然后从 ID=2 开始的子树,依此类推)。
这是一个例子:
with Tb_Table (id, parent_id, name) as(
select 1, 1, 'Child_1' from dual union all
select 2, 1, 'Child_2' from dual union all
select 3, 3, 'Child_3' from dual
),
rec_data (id, parent_id, name, lv) as(
select id
, parent_id
, name
, 0 lv
from Tb_Table
where id = id
union all
select tt.id
, tt.parent_id
, tt.name
, lv + 1
from rec_data rt
join tb_table tt
on (rt.id = tt.parent_id)
)
search depth first by id set ord
cycle id set is_cycle to 'Y' default 'N'
select id
, parent_id
, concat(lpad(' ', lv*3,' '), name) name
from rec_data
结果:
Id Parent_Id Name
-----------------------
1 1 Child_1
1 1 Child_1
2 1 Child_2
2 1 Child_2
3 3 Child_3
3 3 Child_3
演示