SELECT
LEVEL, -- 뎁스 : 루트노드인 경우 1
SYS_CONNECT_BY_PATH(컬럼, 구분자), -- 경로 출력
CONNECT_BY_ROOT 컬럼, -- 루트노드의 컬럼
CONNECT_BY_ISLEAF, -- 최하위노드인 경우 1, 그외는 0
...
FROM 테이블
START WITH 부모컬럼 IS NULL -- 경로가 시작되는 루트노드 설정
CONNECT BY PRIOR 컬럼 = 부모컬럼 -- CONNECT BY : 계층 경로 설정 (부모, 자식 관계) / PRIOR : 바로 앞에 있는 부모노드 반환
...
ORDER SIBLINGS BY 컬럼 -- 같은 계층내에서 정렬
;
⭐️ CONNECT BY절에 작성된 조건절
START WITH절에서 필터링된 시작 데이터는 결과목록에 포함되어지며, 이후 CONNECT BY절에 의해 필터링 된다.
✅ 계층형 질의문에서 Where절
모든 전개를 진행한 이후 필터 조건으로써 조건을 만족하는 데이터만을 추출하는데 활용된다.
⭐️ Oracle은 PRIOR 키워드 SELECT, WHERE절에서도 사용 가능