1.2 oracleの再帰アルゴリズム(connect by prior)

1317 ワード

1.2 oracleの再帰アルゴリズム(connect by prior)
一、connect by priorとは何か
CONNECT BY PRIORという句は主にBツリー型のデータ再帰クエリに用いられ、一般的にはテーブルにIDと親IDが存在する場合、サブノードまたは親ノードで対応するデータを調べることができる.
実例:親ノードとして299499を使用し、子ノードを巡回します.
SELECT FG.CODE,FG.NAME,LEVEL,FG.PARENT_ID FROM CMS.FND_GROUP FG 
START WITH FG.PARENT_ID = '299499'
CONNECT BY PRIOR FG.ID = FG.PARENT_ID
ORDER BY LEVEL DESC
(WHERE FG.ID )

start with句:開始条件を巡回し、
connect by句:接続条件.キーワードpriorは、親フィールドに接続すると親ノードに遍歴し、parentid、idの2列は誰が「=」の前に置いても構わない.肝心なのはpriorが誰と一緒にいるかだ.上はサブクラスに遍歴しています.
order by句:ソートし、レベルに応じて降順にします.