在 Oracle 數據庫中,START WITH 子句用于指定樹查詢的起始節點。當我們需要從一個樹形結構中查詢數據時,可以使用 START WITH 子句指定根節點,然后通過 CONNECT BY 子句指定如何連接每個節點,從而沿著樹形結構查詢數據。
下面是一個示例,假設我們有一個名為 EMPLOYEE 的表,表中包含員工的 ID 和上級員工的 ID,我們想要查詢某個員工的所有下屬員工:
SELECT employee_id, employee_name
FROM employee
START WITH employee_id = :employee_id
CONNECT BY PRIOR employee_id = manager_id;
在上面的查詢中,:employee_id 是我們指定的起始節點,START WITH 子句指定了起始節點為指定的員工 ID,CONNECT BY 子句指定了如何連接每個節點,即當前員工的 ID 等于上級員工的 ID。這樣,我們可以沿著樹形結構查詢出指定員工的所有下屬員工。
需要注意的是,在使用 START WITH 子句時,必須要和 CONNECT BY 子句一起使用,否則會拋出錯誤。START WITH 子句可以指定多個起始節點,也可以使用子查詢作為起始節點。START WITH 子句也可以和其他條件一起使用,以限制查詢結果。