我对 START WITH 和 CONNECT BY 条件有疑问(在 Oracle 12c 中):
这是我的 Oracle SQL:
SELECT
employee_id,
lpad(' ', level*2-1,' ') || last_name,
manager_id,
level,
SYS_CONNECT_BY_PATH(last_name, '/') "Path" --returns the full path of the child
FROM
hr.employees
start with employee_id = 100
CONNECT BY PRIOR employee_id = manager_id
AND NOT (last_name = 'Cambrault' and first_name = 'Gerald')
order siblings by last_name
Run Code Online (Sandbox Code Playgroud)
给出以下输出:
EMPLOYEE_ID LAST_NAME MANAGER_ID LEVEL PATH
100 King null 1 /King
102 De Haan 100 2 /King/De Haan
103 Hunold 102 …
Run Code Online (Sandbox Code Playgroud)