sys_connect_by_path関数での枝切り
sys_connect_by_path
関数での枝切りは、文法エラーORA-30002: ここではSYS_CONNECT_BY_PATH関数を使用できません
が発生してしまいます。
select ID,OyaID from edaKiri start with OyaID is null connect by prior ID = OyaID and sys_connect_by_path(to_char(ID),',') Not Like '%3,4';
connect_by_root演算子での枝切り
connect_by_root
演算子での枝切りは、文法エラーORA-30007: START WITHまたはCONNECT BY条件ではCONNECT BY ROOT演算子はサポートされていません
が発生してしまいます。
select ID,OyaID from edaKiri start with OyaID is null connect by prior ID = OyaID and (connect_by_root ID+4) <= ID;
階層問い合わせでの枝切り
以上をまとめると、階層問い合わせでの枝切りでよく使うのは、
Level
擬似列を伴った条件式prior
演算子を伴った条件式- 上記2つの論理演算
となります。
なお、Oracle 11g R2の新機能の再帰with
句であれば、sys_connect_by_path
関数やconnect_by_root
演算子での枝切りなどに相当する枝切りや、列値の合計値などを使った枝切りなどができます。