两个运算符PRIOR
和CONNECT_BY_ROOT
仅在分层查询中有效。
之前
在分层查询中,CONNECT
BY
condition
的一个表达式必须由PRIOR
的运算符限定。如果CONNECT
BY
condition
为复合, 则只有一个条件需要PRIOR
的运算符, 尽管您可以有多个PRIOR
的条件。PRIOR
计算分层查询中当前行的父行的立即下面的表达式。
在将列值与相等运算符进行比较时, 通常使用PRIOR
。(PRIOR
关键字可以在运算符的任一侧。PRIOR
导致 Oracle 使用列中父行的值。在CONNECT
on 子句中理论上可能存在等号 (=) 以外的运算符. BY
但是, 这些其他运算符创建的条件可以通过可能的组合导致无限循环。在这种情况下, Oracle 在运行时检测循环并返回错误。有关此运算符的详细信息, 请参阅"分层查询" , 包括示例。
CONNECT_BY_ROOT
CONNECT_BY_ROOT
是仅在分层查询中有效的一元运算符。当使用此运算符限定列时, Oracle 将使用根行中的数据返回列值。此运算符扩展了分层查询的CONNECT
[ BY
PRIOR
] 条件的功能。
对 CONNECT_BY_ROOT 的限制不能在START
WITH
条件下或CONNECT
条件下指定此运算符. BY
另请参见:
"CONNECT_BY_ROOT 示例"