Oracle 父子结果循环查询写法
时间: 2023-07-09 17:08:57 浏览: 58
在 Oracle 中,可以使用 CONNECT BY 子句来实现父子关系的查询。下面是一个示例,假设有一个 EMPLOYEE 表,其中包含员工的 ID、名字和经理 ID:
```
EMPLOYEE
--------
ID NAME MANAGER_ID
1 Alice 3
2 Bob 3
3 Charlie 4
4 Dave NULL
5 Eve 4
```
要查询每个员工的名字以及其上级经理的名字,可以使用以下 SQL:
```
SELECT e.NAME AS EmployeeName, m.NAME AS ManagerName
FROM EMPLOYEE e
LEFT JOIN EMPLOYEE m ON e.MANAGER_ID = m.ID
START WITH e.MANAGER_ID IS NULL
CONNECT BY PRIOR e.ID = e.MANAGER_ID;
```
这个查询使用了 START WITH 子句来指定根节点为经理 ID 为 NULL 的员工,然后使用 CONNECT BY 子句来指定父子关系。PRIOR 关键字用于引用父节点的 ID,从而实现循环查询。
查询结果如下:
```
EmployeeName ManagerName
------------ -----------
Dave NULL
Charlie Dave
Alice Charlie
Bob Charlie
Eve Dave
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)