반응형
목차
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' 카테고리의 다른 글
| [SQLD][아이리포]27. 서브쿼리 | 정규표현식 (0) | 2026.08.13 |
|---|---|
| [SQLD][아이리포]26. 서브쿼리 | PIVOT | UNPIVOT (2) | 2026.08.09 |
| [SQLD][아이리포]24. 서브쿼리 | Top-N 쿼리 | ROWNUM | 순위함수 (0) | 2026.07.28 |
| [SQLD][아이리포]23. 서브쿼리 | 윈도우 함수 | RANK | DENSE_RANK | ROW_NUMBER | PARTITION BY | SQL파티션 (0) | 2026.07.26 |
| [SQLD][아이리포]21. 서브쿼리 | 그룹함수 | ROLLUP | CUBE | GROUPING SETS, GROUPING (0) | 2026.07.25 |