문제
계층형 쿼리에서 최상위 관리자를 시작으로 사원번호에서 관리자번호 방향으로 하위 직원을 조회하려고 한다. CONNECT BY 절로 가장 적절한 것은?
SQLSELECT 사원번호, 관리자번호 FROM 사원 START WITH 관리자번호 IS NULL CONNECT BY ________;
① PRIOR 사원번호 = 관리자번호 ② 사원번호 = PRIOR 관리자번호 ③ PRIOR 관리자번호 = 관리자번호 ④ 사원번호 = 관리자번호
정답
1번
해설
정답: 1. 부모 행의 사원번호가 자식 행의 관리자번호와 같아야 하므로 PRIOR 사원번호 = 관리자번호가 적절하다.
오답 풀이
- 1번: 상위 사원에서 하위 사원으로 내려가는 순방향 계층 조회이다.
- 2번: 방향이 반대가 된다.
- 3번: 부모의 관리자번호와 자식의 관리자번호를 비교하므로 부적절하다.
- 4번: PRIOR가 없어 계층 관계를 표현하지 못한다.
보충 개념 CONNECT BY PRIOR 부모컬럼 = 자식컬럼 형태는 부모에서 자식 방향으로 계층을 탐색한다. PRIOR의 위치에 따라 탐색 방향이 달라진다.