LEVEL是一个伪列,可在SELECT命令中列出现的任何位置使用。对于结果集中的每一行,LEVEL返回一个非零整数值,指出由此行表示的节点在层次结构中的深度。根节点的LEVEL为1。根节点的直接子级的LEVEL为2,依此类推。

以下查询在上一查询的基础上进行了修改,其中新增了 LEVEL 伪列。此外,通过使用 LEVEL 值,还对员工名称进行了缩进,以进一步强调每行在层次结构中的深度。

SELECT LEVEL, LPAD (' ', 2 * (LEVEL - 1)) || ename "employee", empno, mgr
FROM emp START WITH mgr IS NULL
CONNECT BY PRIOR empno = mgr;

此查询的输出如下所示。

 level |  employee   | empno | mgr
-------+-------------+-------+------
     1 | KING        |  7839 |
     2 |   JONES     |  7566 | 7839
     3 |     SCOTT   |  7788 | 7566
     4 |       ADAMS |  7876 | 7788
     3 |     FORD    |  7902 | 7566
     4 |       SMITH |  7369 | 7902
     2 |   BLAKE     |  7698 | 7839
     3 |     ALLEN   |  7499 | 7698
     3 |     WARD    |  7521 | 7698
     3 |     MARTIN  |  7654 | 7698
     3 |     TURNER  |  7844 | 7698
     3 |     JAMES   |  7900 | 7698
     2 |   CLARK     |  7782 | 7839
     3 |     MILLER  |  7934 | 7782
(14 rows)

共有同一父级且处于同一级别的节点称为同级。例如,在上述输出中,员工 ALLEN、WARD、MARTIN、TURNER 和 JAMES 是同级,因为它们均位于级别三且父级均为 BLAKE。JONES、BLAKE 和 CLARK 是同级,因为它们均位于级别二且 KING 是其共有父级。