본문 바로가기
Database/Oracle

[ORACLE] 트리구조 데이타 가져오기 / START WITH, CONNECT BY

by 나비와꽃기린 2016. 5. 12.
336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
Tree구조의 데이터(상위-하위 계층 관계의 데이타)를 가져오려고 한다.
oracle db에서는 START WITH, CONNECT BY 구문을 사용하여 해결할 수 있다.


예)

SELECT AAA, BBB
FROM [TABLE_NM]
START WITH AAA= 0 // AAA가 0인 것부터 시작
CONNECT BY PRIOR AAA= BBB// AAA와 BBB를 계층화 (부모에서 자식으로)

예2) 동일 레벨의 지정 컬럼으로 정렬하는 방법은 
ORDER SIBLINGS BY 컬럼명

--------------------------------------------------------------

1. START WITH 
루트(부모행)로 사용될 행을 지정
서브쿼리를 사용 가능


2. CONNECT BY 
상위계층(부모행)과 하위계층(자식행)의 관계를 규정 
서브쿼리를 사용 X

3. CONNECT BY의 실행순서
START WITH ->  CONNECT BY -> WHERE