Oracle 에서 다음 SQL을 실행했을 때 결과의 이름을 단계 순서대… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 1회
Oracle 에서 다음 SQL을 실행했을 때 결과의 이름을 단계 순서대로 나열한 것은?[직원]
| 사번 | 이름 | 상사사번 |
|---|---|---|
| 1 | 한서진 | (null) |
| 2 | 오지훈 | 1 |
| 3 | 정다인 | 1 |
| 4 | 배수아 | 2 |
| 5 | 노태윤 | 4 |
| 6 | 문가은 | 4 |
| 7 | 유하람 | 3 |
SELECT LEVEL AS 단계, 이름 FROM 직원 START WITH 사번 = 4 CONNECT BY PRIOR 상사사번 = 사번 ORDER BY 단계;
1
배수아, 노태윤, 문가은
2
배수아, 오지훈
3
배수아, 오지훈, 한서진
4
한서진, 오지훈, 배수아
해설
PRIOR 상사사번 = 사번은 이전 행의 상사사번을 사번으로 갖는 행, 곧 상사 쪽으로 올라가는 역방향 전개다.시작 행 배수아가 LEVEL 1이고 그 상사 오지훈이 2, 루트 한서진이 3이 되며, 루트의 상사사번이 NULL 이라 전개가 끝난다.
- 부하 노태윤·문가은으로 내려가는 것은 PRIOR 사번 = 상사사번 인 순방향이다.
- 한서진을 1단계로 보는 것은 LEVEL 이 시작 행에서 1부터 매겨지는 점을 놓친 것이다.
- 루트도 연결 조건을 만족해 포함되므로 오지훈에서 끝나지 않는다.
오류나 개정된 내용이 보이면 알려주세요