Oracle的CONNECT BY語法用于執行遞歸查詢,通常用于處理層次結構數據,例如組織結構或樹結構。其基本語法如下:
SELECT column1, column2, ...
FROM table_name
START WITH condition
CONNECT BY PRIOR column = parent_column;
其中:
SELECT column1, column2, ...
:指定要查詢的列。FROM table_name
:指定要查詢的表。START WITH condition
:指定查詢起始點的條件。CONNECT BY PRIOR column = parent_column
:指定遞歸連接條件,其中column
是子節點的列,parent_column
是父節點的列。在CONNECT BY子句中,可以使用PRIOR
關鍵字來引用父節點的值,從而實現遞歸查詢。通過使用LEVEL
偽列可以獲取每個節點的層級信息。
例如,以下是一個使用CONNECT BY語法查詢組織結構的示例:
SELECT emp_id, emp_name, manager_id, LEVEL
FROM employees
START WITH emp_id = 1
CONNECT BY PRIOR emp_id = manager_id;
在這個例子中,我們從員工表中查詢員工的ID、姓名、經理ID和層級信息,起始點為ID為1的員工,然后通過CONNECT BY語法遞歸查詢員工的上級經理直到頂級經理。