본문 바로가기

자격증/SQLD

[SQLD][아이리포]25. 서브쿼리 | 계층형질의 | START WITH | CONENCT BY PRIOR | ORDER SIBLINGS BY

반응형
목차

4. 서브쿼리
4-6. 계층형 질의와 셀프 조인
4-6-1. START WITH
4-6-2. CONNECT BY PRIOR
4-6-3. ORDER SIBLINGS BY

4. 서브쿼리

4-6. 계층형 질의와 셀프 조인

계층형 질의(Hierarchical Query)는 부모와 자식 관계를 가지는 데이터를 계층 구조(트리 구조)로 조회하는 기능이다.

 

대표적으로 START WITH, CONNECT BY PRIOR, ORDER BY SIBLINGS BY를 사용한다.

 

🔹 예제

다음 EMP 테이블에 대한 SQL문의 결과는?

 

 

SELECT *
FROM EMP
START WITH MGRNO IS NULL
CONNECT BY PRIOR EMPNO = MGRNO
ORDER SIBLINGS BY EMPNO DESC;

 

🔹  실행결과

 

 

🔹  트리구조

 

1️⃣ START WITH

계층 구조의 시작점(루트 노드)를 지정하는 절이다.

 

즉, 설정한 조건을 만족하는 행부터 계층 구조를 시작한다.

 

START WITH MGRNO IS NULL

 

➜관리자(MGRNO)가 없는 사원을 루트 노드로 설정한다. 

2️⃣ CONNECT BY PRIOR

부모와 자식의 관계를 지정하는 절이다.

 

✔️ 순방향 전개

CONNECT BY PRIOR EMPNO = MGRNO

 

➜ EMPNO = 부모

➜ MGRNO = 자식

 

➜ 부모 -> 자식 방향으로 계층을 조회한다.

 

✔️ 역방향 전개

CONNECT BY PRIOR MGRNO = EMPNO

 

➜ 자식 -> 부모 방향으로 계층을 조회한다.

3️⃣ ORDER SIBLINGS

같은 부모를 가진 형제(Sibling) 노드끼리만 정렬하는 절이다.

 

ORDER SIBLINGS BY EMPNO DESC

 

➜ 같은 레벨의 형제 노드만 EMPNO 기준 내림차순으로 정렬한다.

➜ 전체 계층 구조는 유지하면서 같은 부모를 가진 데이터만 정렬한다.


🔗 출처

[SQLD 모든 것]

반응형