ORACLE官方SQL语言参考笔记之运算符(第四章-第四节-分层查询运算符)

两个运算符PRIORCONNECT_BY_ROOT仅在分层查询中有效。

之前

在分层查询中,CONNECT BY condition的一个表达式必须由PRIOR的运算符限定。如果CONNECT BY condition为复合, 则只有一个条件需要PRIOR的运算符, 尽管您可以有多个PRIOR的条件。PRIOR计算分层查询中当前行的父行的立即下面的表达式。

在将列值与相等运算符进行比较时, 通常使用PRIOR(PRIOR关键字可以在运算符的任一侧。PRIOR导致 Oracle 使用列中父行的值。CONNECTon 子句中理论上可能存在等号 (=) 以外的运算符. BY但是, 这些其他运算符创建的条件可以通过可能的组合导致无限循环。在这种情况下, Oracle 在运行时检测循环并返回错误。有关此运算符的详细信息, 请参阅"分层查询" , 包括示例。

CONNECT_BY_ROOT

CONNECT_BY_ROOT是仅在分层查询中有效的一元运算符。当使用此运算符限定列时, Oracle 将使用根行中的数据返回列值。此运算符扩展了分层查询的CONNECTBY PRIOR] 条件的功能。

对 CONNECT_BY_ROOT 的限制不能在STARTWITH条件下或CONNECT条件下指定此运算符. BY

另请参见:

"CONNECT_BY_ROOT 示例"

猜你喜欢

转载自blog.csdn.net/huyingzuo/article/details/80475910