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子句,可以實現基于層級關系的查詢,從而方便地獲取層級結構的數據。