Web Programming/DB
[Oracle] 오라클 계층구조(트리구조)로 조회하기 (level, start with...connect by prior, order siblings by)
jaey0ng
2023. 1. 25. 15:56
수행순서는 다음과 같습니다
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