SQL 기본 및 활용
🗄️ SQLSQL 활용★★★★☆자주

계층형 질의 — 위아래로 타고 내려가기

START WITH 로 시작 행을 정하고 CONNECT BY 로 이어 간다. PRIOR 가 붙은 쪽이 부모다.

START WITHCONNECT BYPRIORLEVEL재귀 WITH

왜 그런지까지

조직도나 게시판 답글처럼 자기 표 안에서 부모·자식이 이어질 때 쓴다. START WITH 는 뿌리가 될 행, CONNECT BY PRIOR 자식키 = 부모키 는 위에서 아래로 내려가는 방향이다.

PRIOR 를 반대쪽에 붙이면 아래에서 위로 올라간다. LEVEL 은 몇 번째 층인지, CONNECT_BY_ROOT 는 뿌리 값을, SYS_CONNECT_BY_PATH 는 지나온 길을 돌려준다. 표준 SQL 에서는 재귀 WITH 로 같은 일을 한다.

돌려 보기

재귀 WITH 로 조직도를 타고 내려간다

헷갈리는 것

순방향 vs 역방향

CONNECT BY PRIOR 부모키 = 자식키 는 위에서 아래로(순방향), CONNECT BY 부모키 = PRIOR 자식키 는 아래에서 위로(역방향)다.

확인 문제

넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다