Oracle 层次查询
1. 基本语法
SELECT *
FROM table_name
WHERE condition
START WITH condition1
CONNECT BY [NOCYCLE] PRIOR condition2;
层析查询的执行顺序如下:
- START WITH 子句:首先执行 START WITH 子句,确定层次查询的根节点。
- CONNECT BY 子句:然后执行 CONNECT BY 子句,递归地查找子节点,构建层次结构。
- WHERE 子句:最后执行 WHERE 子句,对已经构建好的层次结构进行过滤。
因此,如果你在层次查询中加入 WHERE 条件,WHERE 子句会在 START WITH 和 CONNECT BY 子句之后执行。也就是说,层次查询会先构建出完整的层次结构,然后再根据 WHERE 子句进行过滤。
2. 实例验证
-- 创建示例表
CREATE TABLE a_auth.employees_test (employee_id NUMBER PRIMARY KEY,employee_name VARCHAR2(100),manager_id NUMBER,department VARCHAR2(50)
);-- 插入数据
INSERT INTO a_auth.