質問で提供した情報に基づいて、実際に何を達成しようとしているのかを判断するのは非常に難しいですが、それぞれのサブツリーを表示したいようです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
デモ