分级取数据
select employee_id,last_name,job_id,manager_id from employees
start with employee_id=101 --employee_id=101为父
connect by prior employee_id=manager_id;--现在是由父指向子(从上到底)
EMPLOYEE_ID LAST_NAME JOB_ID MANAGER_ID
----------- ------------------------- ---------- ----------
101 Kochhar AD_VP 100
108 Greenberg FI_MGR 101
109 Faviet FI_ACCOUNT 108
110 Chen FI_ACCOUNT 108
111 Sciarra FI_ACCOUNT 108
112 Urman FI_ACCOUNT 108
113 Popp FI_ACCOUNT 108
200 Whalen AD_ASST 101
203 Mavris HR_REP 101
204 Baer PR_REP 101
205 Higgins AC_MGR 101
EMPLOYEE_ID LAST_NAME JOB_ID MANAGER_ID
----------- ------------------------- ---------- ----------
206 Gietz AC_ACCOUNT 205
select employee_id,last_name,job_id,manager_id from employees
start with employee_id=101 --employee_id=101为父
connect by prior manager_id=employee_id;--现在是由子指向父(从底向上)
EMPLOYEE_ID LAST_NAME JOB_ID MANAGER_ID
----------- ------------------------- ---------- ----------
101 Kochhar AD_VP 100
100 King AD_PRES
select employee_id,last_name,job_id,manager_id from employees
start with employee_id=101
connect by prior employee_id=manager_id
and employee_id!=108;
EMPLOYEE_ID LAST_NAME JOB_ID MANAGER_ID
----------- ------------------------- ---------- ----------
101 Kochhar AD_VP 100
200 Whalen AD_ASST 101
203 Mavris HR_REP 101
204 Baer PR_REP 101
205 Higgins AC_MGR 101
206 Gietz AC_ACCOUNT 205
select employee_id,last_name,job_id,manager_id from employees
where employee_id!=108
start with employee_id=101
connect by prior employee_id=manager_id;
EMPLOYEE_ID LAST_NAME JOB_ID MANAGER_ID
----------- ------------------------- ---------- ----------
101 Kochhar AD_VP 100
109 Faviet FI_ACCOUNT 108
110 Chen FI_ACCOUNT 108
111 Sciarra FI_ACCOUNT 108
112 Urman FI_ACCOUNT 108
113 Popp FI_ACCOUNT 108
200 Whalen AD_ASST 101
203 Mavris HR_REP 101
204 Baer PR_REP 101
205 Higgins AC_MGR 101
206 Gietz AC_ACCOUNT 205
用LEVEL和LPAD格式化分级报告
select lpad(last_name,length(last_name)+(LEVEL*2)-2,'$') as org_chart,level
from employees
start with employee_id=100
connect by prior employee_id=manager_id;