KAISOUテーブル OYA KO FLG A --- -- --- / \ A B 0 B C A C 0 /|\ \ B D 1 D E F G B E 0 / / \ B F 0 H I J C G 0 D H 0 G I 0 G J 0 ルートを A として階層情報を出力する ただし、フラグが1である親子関係 B-D より下の親子関係は出力しない。 出力結果 LEVEL OYA KO A ----- --- -- / \ 1 A B B C 2 B D /|\ \ 2 B E D E F G 2 B F / \ 1 A C I J 2 C G 3 G I 3 G J
create table KAISOU( OYA char(1), KO char(1), FLG number(1)); insert into KAISOU values('A','B',0); insert into KAISOU values('A','C',0); insert into KAISOU values('B','D',1); insert into KAISOU values('B','E',0); insert into KAISOU values('B','F',0); insert into KAISOU values('C','G',0); insert into KAISOU values('D','H',0); insert into KAISOU values('G','I',0); insert into KAISOU values('G','J',0); commit;
select Level,OYA,KO from KAISOU Start With OYA ='A' connect by prior KO = OYA and prior flg != 1 order siblings by KO;
flg != 1 を階層問い合わせの条件として使ってます。