0

私はこの構造を持つ製品データベースに取り組んでいます:

ID | ChildID
1    1
2    2
2    3
2    4
2    5
3    null
4    8
5    6      
6    null
8    null

ID = ChildID の場合、「ヘッダー」行です。ChildId = null の場合、それは階層内の最後のノードです (明らかに) 取得したいのは完全な階層です。「WITH」句を使用していくつかのクエリを試しましたが、その構造のために機能させることができません。

何かアドバイス?

アイテム '2' の階層を探すときに期待される出力

ID | ChildID
2    2
3    null
4    8
5    6      
6    null
8    null
4

1 に答える 1

0

「ヘッダー」行とデータの間にリンクがないようです。の行が欠落していると仮定すると(1, 2)、これはあなたが望むものですか?

select rpad(' ', 2*(level-1)) || id as padded_id, childid
from t42
start with childid = id
connect by nocycle prior childid = id
order by id, childid;

PADDED_ID     CHILDID
---------- ----------
1                   1 
  1                 2 
    2               3 
    2               4 
    2               5 
      3               
      4             8 
      5             6 
        6             

 9 rows selected 

ドキュメントで階層クエリについて読むことができます。

于 2013-06-28T09:23:01.220 に答える