階層クエリ演算子にはPRIORとCONNECT_BY_ROOTが含まれ、これらの演算子は階層クエリでのみ有効です。
PRIOR演算子
階層クエリでは、CONNECT BY 条件には少なくとも1つの PRIOR 演算子で限定された式を含める必要があります。PRIOR 演算子の結果は、現在の行の親行を使用してその直後の式を計算することで得られます。
PRIOR は主に列の等価比較シナリオで使用されます(PRIOR は比較演算子のどちら側にも配置できます)。理論的には、CONNECT BY 句では等号(=)以外の演算子も使用できます。しかし、他の演算子によって作成された条件はループを引き起こす可能性があり、この場合、OceanBaseデータベースは実行時にループを検出してエラーを返します。
CONNECT_BY_ROOT演算子
CONNECT_BY_ROOT は単項演算子であり、階層クエリでのみ有効です。CONNECT_BY_ROOT のパラメータは列やほとんどの式にすることができ、CONNECT_BY_ROOT 演算子の結果は、ルート行のデータを使用してパラメータの値を計算したものと同じになります。
注意
START WITH 条件または CONNECT BY 条件でこの演算子を指定することはできません。
階層クエリの詳細については、階層クエリを参照してください。