PRIOR关键字介绍

说明:

PRIOR给层次查询的表达式指定数据来源于父行

语法:

prior ::=

参数:

Expr只能是一个表达式(包括支持列名、常数的情况),表示Expr中列的值都来自父行。

注释:

PRIOR是一个一元操作符,它指明其后的操作数是来自父行。这个关键字的实现不完全和ORACLE兼容,这里的主要区别在于ORACLE的PRIOR关键字可以出现在ORDER SIBLINGS BY子句和SYS_CONNECT_BY_PATH函数中,以及可以与CONNECT_BY_ROOT混用,而神通数据库则不能。但是这些情况中ORACLE表现的有时也不是很好,比如在CONNECT_BY_ROOT后面加PRIOR的话,那么可能会导致ORACLE内部出错,或者导致连接断开。PRIOR关键字可以出现的位置有目标列、CONNECT BY子句、START WITH子句、ORDER BY子句、聚集函数、GROUP BY子句、HAVING子句和WHERE子句,不可以出现在ORDER SIBLINGS BY子句中,也不能与自身嵌套或与CONNECT_BY_ROOT或SYS_CONNECT_BY_PATH混合使用。

示例:

使用PRIOR关键字的例子

查询语句如下:

SELECT employee_id, PRIOR employee_id pr_empid, last_name, manager_id FROM EMPLOYEES CONNECT BY PRIOR employee_id = manager_id;

查询结果如下:

../../../../_images/image712.png