문제
아래의 계층형 쿼리에 대한 설명으로 적절하지 않은 것은?
SQLSELECT emp_no, mgr_no FROM emp START WITH mgr_no IS NULL CONNECT BY PRIOR emp_no = mgr_no;
<조건> emp_no는 하위 사원 번호, mgr_no는 상위 관리자 번호를 나타낸다.
① 계층 구조를 조회한다. ② 상위 관리자부터 조회한다. ③ 역방향 탐색이다. ④ 순방향 탐색이다.
정답
3번
해설
정답: 3. CONNECT BY PRIOR emp_no = mgr_no는 부모 행의 emp_no가 자식 행의 mgr_no와 같은 행을 찾아 내려가는 순방향 계층 탐색이다.
오답 풀이
- 1번: CONNECT BY를 사용하므로 계층 구조를 조회한다.
- 2번: START WITH mgr_no IS NULL이면 최상위 관리자부터 시작한다.
- 3번: 역방향이라는 설명은 틀리다.
- 4번: 부모에서 자식으로 내려가는 순방향이다.
보충 개념
계층형 쿼리에서 PRIOR의 위치가 탐색 방향을 결정한다. PRIOR 부모컬럼 = 자식컬럼은 일반적으로 하위 방향 탐색이다.