[SQL] 계층형 질의문 3 - order siblings by

·2025년 7월 11일

SQL

목록 보기
106/126

문제1. 다음과 같이 결과를 출력하시오

select rpad(' ', level*2) || ename as EMPLOYEE, level, sal, job
 from emp
 start with mgr is null
 connect by prior empno = mgr;

문제2. 위의 결과를 다시 출력하는데 월급이 높은 사원부터 출력하시오

다음과 같이 단순히 order by절만 쓰면 자기 팀원이 누군지 모르게 됨
서열이 깨짐

select rpad(' ', level*2) || ename as EMPLOYEE, level, sal, job
 from emp
 start with mgr is null
 connect by prior empno = mgr;
 order by sal desc;

문제3. 서열을 유지하고 자기 팀원이 누군지 아는 상태로 출력하면서 월급이 높은 사원부터 출력되게하시오

select rpad(' ', level*2) || ename as EMPLOYEE, level, sal, job
 from emp
 start with mgr is null
 connect by prior empno = mgr;
 order siblings by sal desc;

📌 order siblings by 컬럼명 asc/desc;

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

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

문제4. 이름앞에 서열로 공백이 들어간 employee 출력하고 입사일을 출력하는데 먼저 입사한 사원 순서대로 정렬해서 출력하시오

select rpad(' ', level*2) || ename as employee, hiredate
 from emp
 start with mgr is null
 connect by prior empno = mgr
 order siblings by hiredate;

0개의 댓글