문제
계층형 질의에서 사원에서 관리자 방향으로 역방향 탐색을 수행하려고 한다. 다음 중 PRIOR가 들어갈 위치로 가장 적절한 것은?
SQLSELECT EMPNO, MGR FROM EMP START WITH EMPNO = 7788 CONNECT BY EMPNO = PRIOR MGR;
① EMPNO 앞 ② MGR 앞 ③ START WITH 앞 ④ SELECT 앞
정답
2번
해설
정답: 2. CONNECT BY EMPNO = PRIOR MGR 형태는 현재 행의 EMPNO가 이전 행의 MGR과 같은 상위 방향 탐색에 사용된다.
오답 풀이
- 1번: EMPNO 앞에 PRIOR를 두면 하위 방향 탐색 조건이 될 수 있다.
- 2번: 관리자 방향으로 올라가는 조건에 적절하다.
- 3번: START WITH 앞에 PRIOR를 두지 않는다.
- 4번: SELECT 앞에 PRIOR를 두지 않는다.
보충 개념 CONNECT BY에서 PRIOR의 위치는 계층 탐색 방향을 결정한다. 부모에서 자식으로 내려갈 때와 자식에서 부모로 올라갈 때 조건식이 달라진다.