학습용 기출·복원자료 분류 확인SQLD · 2024년 55회 SQL 기본 및 활용 · 29번
EMP_NO가 사원 번호이고 MANAGER_NO가 상위 관리자 번호일 때 부모에서 자식 방향으로 전개하는 조건은?
DBMS: Oracle
SELECT EMP_NO, MANAGER_NO, LEVEL
FROM EMP
START WITH MANAGER_NO IS NULL
CONNECT BY PRIOR EMP_NO = MANAGER_NO;
1
CONNECT BY EMP_NO = MANAGER_NO
오답 이유PRIOR가 없어 어느 쪽이 상위 행 값인지 지정하지 못해 올바른 계층 연결 조건이 아니다. 따라서 1번 보기 ‘CONNECT BY EMP_NO = MANAGER_NO’의 적용 여부를 문제 조건과 대조해야 한다.
2
CONNECT BY PRIOR MANAGER_NO = EMP_NO
오답 이유상위 행의 관리자 번호를 현재 사원 번호와 비교해 의도한 하향 전개와 반대 관계를 만든다. 따라서 2번 보기 ‘CONNECT BY PRIOR MANAGER_NO = EMP_NO’의 적용 여부를 문제 조건과 대조해야 한다.
3
CONNECT BY PRIOR EMP_NO = MANAGER_NO
정답 근거`PRIOR EMP_NO`는 직전 상위 행의 사원 번호를 뜻하고 현재 행의 MANAGER_NO와 비교한다. 따라서 관리자에서 그 관리자를 참조하는 부하 직원 방향으로 내려간다. 따라서 3번 보기 ‘CONNECT BY PRIOR EMP_NO = MANAGER_NO’의 적용 여부를 문제 조건과 대조해야 한다.
4
CONNECT BY EMP_NO = PRIOR MANAGER_NO
오답 이유현재 사원 번호를 상위 행의 관리자 번호와 비교하므로 부하에서 관리자 쪽으로 올라가는 형태가 된다. 따라서 4번 보기 ‘CONNECT BY EMP_NO = PRIOR MANAGER_NO’의 적용 여부를 문제 조건과 대조해야 한다.
ANSWER & EXPLANATION
정답 3번
핵심 판단은 3번 ‘CONNECT BY PRIOR EMP_NO = MANAGER_NO’입니다. `PRIOR EMP_NO`는 직전 상위 행의 사원 번호를 뜻하고 현재 행의 MANAGER_NO와 비교한다. 따라서 관리자에서 그 관리자를 참조하는 부하 직원 방향으로 내려간다.