SQLD(SQL 개발자) 기출 · 계층형 질의
다음의 SQL문이 실행되었을 때 "실행 결과"와 같이 조회되는 것은?
본문)
[MYTEST]
NCOL1 NCOL2 CCOL3 CCOL4
----- ----- ----- -----
1 NULL B B
2 1 A B
3 2 C A
4 1 D A
5 4 E A
[실행 결과]
NCOL1 NCOL2 CCOL3 CCOL4
----- ----- ----- -----
1 NULL B B
2 1 A B
3 2 C A
4 1 D A이 문제 풀어보기
정답 및 해설 보기
정답: 2번
START WITH CCOL3 = 'B' 이므로 NCOL1=1 행에서 계층 탐색이 시작된다. CONNECT BY PRIOR NCOL1 = NCOL2 AND PRIOR CCOL4 = 'B' 는 부모 행의 CCOL4 값이 B인 경우에만 자식 행으로 내려간다는 뜻이다. 따라서 1행(CCOL4=B)에서 2행과 4행이 연결되고, 2행(CCOL4=B)에서는 다시 3행까지 연결된다. 하지만 4행은 CCOL4=A 이므로 5행으로 더 내려가지 못한다. 결과적으로 1, 2, 3, 4행만 조회되므로 정답은 2번이다. 3번은 PRIOR CCOL3 = 'B' 조건이라 2행의 CCOL3 값이 A인 시점에서 3행으로 확장되지 않는다.