계층적으로 데이터 상호간의 관계를 표시 LEVEL로 표시
select LPAD(employee_id, level*3, '-') AS EMP_LEVEL, employee_id, last_name, manager_id
from employees
START WITH employee_id = '100'
CONNECT BY PRIOR employee_id = manager_id
EMP_LEVEL EMPLOYEE_ID LAST_NAME MANAGER_ID
100 100 King
---101 101 Kochhar 100
------108 108 Greenberg 101
---------109 109 Faviet 108
---------110 110 Chen 108
---------111 111 Sciarra 108
---------112 112 Urman 108
---------113 113 Popp 108
------200 200 Whalen 101
------203 203 Mavris 101
------204 204 Baer 101
------205 205 Higgins 101
---------206 206 Gietz 205
// lpad(employee_id, level*3, '-')는 employee_id를 나타내며
// level*3를 사용하여 부하직원을 표시할 때 3자리 씩 표현.
// 3자리 씩 표현을 '-' 하이픈으로 표시한다.
// start whith employee_id = '100'으로 100번부터 시작을하며,
// connect by prior로 계층간의 관계를 정의한다.
// 100번 부하직원은 모두가 있고 100번 부하직원인 101번의 부하직원은 108, 200,200,203..이며,
// 108번의 부하직원은 109,110,111,112,113이 있다.
// manager_id로 직장 상사를 찾을 수 있지만, lpad를 사용함으로써, 편리하게 눈으로 확인할 수 있다.
| View 가상테이블 (0) | 2022.06.12 |
|---|---|
| Transaction, lock, Rollback, View, Compile (0) | 2022.06.09 |
| GROUP BY 함수 확장(group by rollup, group by cube) (0) | 2022.06.09 |
| 집합 연산자 (합집합, 차집합, 교집합 등) (0) | 2022.06.08 |
| SUB QUERY (0) | 2022.06.08 |