[SQL] 090. 계층형 질의문으로 서열을 주고 데이터 출력하기2
Updated:
초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.
오라클 SQL을 기반으로 합니다.
실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.
[예시]
이전 포스팅 계층형 질의문으로 서열을 주고 데이터 출력하기와 함께 보자.
CONNECT BY PRIOR
에 조건을 추가하였다.
이전 포스팅 결과에서 BLAKE와 BLAKE의 하위 레벨은 포함되지 않게 한다.
만약 BLAKE만 제외하려면 조건을 WHERE
절로 바꿔준다.
-- 기본 옵션으로 사용
-- AUTOCOMMIT 끄기
SET AUTOCOMMIT OFF;
-- 날짜 출력 포맷 변경
ALTER SESSION SET NLS_DATE_FORMAT = 'RRRR-MM-DD';
-- CONNCT BY PRIOR 이후 조건을 주어 BLAKE 제외
-- BLAKE의 자식 노드 역시 출력되지 않음
SELECT RPAD('-', LEVEL*2, '-') || ENAME AS EMPLOYEE, LEVEL, SAL, JOB
FROM EMP
START WITH ENAME = 'KING'
CONNECT BY PRIOR EMPNO = MGR AND ENAME != 'BLAKE';
[결과]
EMPLOYEE | LEVEL | SAL | JOB |
---|---|---|---|
–KING | 1 | 5000 | PRESIDENT |
—-JONES | 2 | 2975 | MANAGER |
——SCOTT | 3 | 3000 | ANALYST |
——–ADAMS | 4 | 1100 | CLERK |
——FORD | 3 | 3000 | ANALYST |
——–SMITH | 4 | 800 | CLERK |
—-CLARK | 2 | 2450 | MANAGER |
——MILLER | 3 | 1300 | CLERK |
Leave a comment