Oracle中的CONNECT BY子句用于实现层级查询。具体步骤如下:
下面是一个示例,假设有一个员工表EMPLOYEE,包含员工ID(EMP_ID)和经理ID(MANAGER_ID)两个字段,要查询员工及其直接上级的层级关系:
SELECT EMP_ID, MANAGER_ID, LEVEL
FROM EMPLOYEE
START WITH MANAGER_ID IS NULL
CONNECT BY PRIOR EMP_ID = MANAGER_ID;
在上面的例子中,START WITH子句指定了查询的起始条件为MANAGER_ID为空,即查询根节点(没有上级的员工)。CONNECT BY子句中使用PRIOR关键字指定了EMP_ID和MANAGER_ID之间的父子关系,LEVEL伪列用来获取每个节点在层次结构中的层级。
通过CONNECT BY子句,可以实现基于层级关系的查询,从而方便地获取层级结构的数据。