階層問合せ演算子

PRIORおよびCONNECT_BY_ROOTの2つの演算子は、階層問合せでのみ有効です。

PRIOR

階層問合せでは、CONNECT BY condition内の1つの式をPRIOR演算子で修飾する必要があります。CONNECT BY conditionが複合条件の場合、1つの条件のみにPRIOR演算子が必要です(複数のPRIOR条件を使用することもできます)。PRIORは、階層問合せ内でカレント行の親である行の直後にある式を評価します。

PRIORは、等価演算子を使用して列の値を比較する場合によく使用されます。(PRIORキーワードは演算子のどちら側でもかまいません。)PRIORを指定すると、列の親である行の値が使用されます。等号(=)以外の演算子は、理論上はCONNECT BY句に指定できます。ただし、これらの他の演算子の組合せによっては、作成される条件は無限ループを発生させる場合があります。この場合、実行時にループが検出され、エラーが戻されます。この演算子の詳細および例は、階層問合せを参照してください。

CONNECT_BY_ROOT

CONNECT_BY_ROOTは、階層問合せでのみ有効な単項演算子です。この演算子を使用して列を修飾すると、ルート行のデータを使用して列の値が戻されます。この演算子は、階層問合せのCONNECT BY [PRIOR]条件の機能を拡張します。

CONNECT_BY_ROOTの制限事項

START WITH条件またはCONNECT BY条件では、この演算子は指定できません。

関連項目:

CONNECT_BY_ROOTの例