오라클에서 지원하는 매우 강력한 기능 중 하나로. 상위 타입과 하위 타입간의 관계를 계층식으로 표현할 수 있게 하는 질의어(SELECT)
상위 타입(최상위 부모)으로 사용될 행 지정
상위 타입과 하위 타입의 관계를 규정 PRIOR 연산자와 사용해서
현재 행 이전에 상위 타입 또는 하위 타입 규정
1) 부모 -> 자식 계층
CONNECT BY PRIOR 자식 컬럼 = 부모 컬럼
2) 자식 -> 부모 계층
CONNECT BY PRIOR 부모 컬럼 = 자식 계층
5 : SELECT
1 : FROM
4 : WHERE
2 : START WITH
3 : CONNECT BY
6 : ORDER SIBLINGS BYWHERE 절이 계층형 쿼리보다 해석 순서가 늦기 때문에 먼저 조건을 반영하고 싶은 경우 FROM절 서브쿼리 (인라인뷰) 이용
SELECT LEVEL, REPLY_NO , REPLY_CONTENT, PARENT_REPLY_NO FROM REPLY_S rs START WITH PARENT_REPLY_NO IS NULL
CONNECT BY PRIOR REPLY_NO = PARENT_REPLY_NO
ORDER SIBLINGS BY REPLY_NO;
이와 같이 계층형 구성으로 각 계층(LEVEL)을 확인 가능하다.
댓글과 대댓글 구현 등에 사용하면 좋다.