본문 바로가기
Web Programming/DB

[Oracle] 오라클 계층구조(트리구조)로 조회하기 (level, start with...connect by prior, order siblings by)

by jaey0ng 2023. 1. 25.

수행순서는 다음과 같습니다

1. START WITH 절에서 시작할 조건 탐색

    - 트리구조 최상단에 들어갈 컬럼을 START WITH절에다가 넣으면 됩니다.

2. CONNECT BY 절에서 연결조건 탐색

    - 자식 = 부모 or 부모 = 자식 차이는 

       자식 -> 부모로 방향을 잡느냐, 부모 -> 자식으로 방향을 잡느냐 입니다.

       보통 자식 = 부모로 쓰입니다.

 

예를 들기 전에 

PRIOR 은 상위 행을 참조하는 것으로 

쉽게 설명하자면

부서별로, 팀별로 찾는 것입니다.

 

사용법은 아래와 같습니다.

 SELECT LEVEL
      , a
      , b
      , c
   FROM table
  WHERE 1=1
  START WITH a = '*'
CONNECT BY PRIOR b = a
  ORDER SIBLINGS BY c
;

 

SIBLINGS 는 부모자식 형태로 즉 트리별로, 구조별로 조회를 해주는 코드입니다.

 

LEVEL은 트리의 단계를 뜻합니다

부서를 1이라고 치면

부서원은 2라고 나옵니다.

 

잘 응용하셔서 사용하시길 바랍니다 :D