25

재귀 CTE: 계층 구조 다루기

Day 3: 쿼리가 너무 복잡한데 쪼갤 수 없나?

학습 목표

재귀 CTE의 작동 원리를 이해한다 조직도, 카테고리 트리를 SQL로 처리한다

재귀 CTE가 필요한 상황

조직도 데이터:

에디터 로딩 중...

"CEO 아래 모든 직원을 조회하고 싶어. 그리고 각 직원이 몇 단계 아래인지도."

일반 쿼리로는 불가능! 재귀가 필요하다.


재귀 CTE 구조

에디터 로딩 중...

실행 흐름

에디터 로딩 중...

예제 1: 숫자 1~5 생성

에디터 로딩 중...

결과: 1, 2, 3, 4, 5


예제 2: 조직도 전체 출력

에디터 로딩 중...

결과:

에디터 로딩 중...

무한 루프 방지

에디터 로딩 중...

항상 종료 조건(WHERE)을 명시하자!


재귀 CTE 사용 사례

상황예시
조직도상사-부하 관계
카테고리 트리대분류-중분류-소분류
BOM (Bill of Materials)부품-조립품 구조
경로 탐색그래프에서 경로 찾기
날짜 생성기간 내 모든 날짜