[SQL] 계층형 질의문 4 - sys_connect_by_path()

·2025년 7월 11일

SQL

목록 보기
107/126

문제1. 위의 결과를 출력하시오

select ename, sys_connect_by_path(ename,'/')
 from emp
 start with ename='KING'
 connect by prior empno = mgr;

💡 sys_connect_by_path 함수를 이용하면
전체 사원들에서 본인 서열의 위치가 정확히 어떻게 되는지 출력가능

문제2. (오라클 정규교재 문제 난이도 중) 위의 결과를 다시 출력하는데 이름 앞에 / 를 제외하고 출력하시오

select ename, ltrim(sys_connect_by_path(ename, '/'), '/')
 from emp
 start with ename='KING'
 connect by prior empno = mgr;

문제3. (SQLD 기출문제) 사원이름, 해당 사원이 말단 사원이면 1을 출력하고 그렇지 않으면 0을 출력하시오. 자기 밑에 직속부하가 없는 사원들이면 1을 출력합니다.

select level, ename, connect_by_isleaf
 from emp
 start with ename='KING'
 connect by prior empno = mgr;

⭐ 문제4.(SQLD 기출문제) 위의 결과에서 connect_by_isleaf 가 1인 사원들만 출력하시오

select level, ename, connect_by_isleaf
 from emp
 where connect_by_isleaf = 1
 start with ename='KING'
 connect by prior empno = mgr;

💡 계층형 질의문을 배울때 꼭 알아야하는 3가지 내용

  1. 가지치기(pruning) 하는 방법
  2. 계층형 질의문과 짝꿍 함수인 sys_connect_by_path 함수 (공무원 연금 공단)
  3. 계층형 질의문에서 order by 절 사용법

0개의 댓글