Database/Oracle
[ORACLE] 트리구조 데이타 가져오기 / START WITH, CONNECT BY
나비와꽃기린
2016. 5. 12. 13:29
Tree구조의 데이터(상위-하위 계층 관계의 데이타)를 가져오려고 한다.
oracle db에서는 START WITH, CONNECT BY 구문을 사용하여 해결할 수 있다.
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를 계층화 (부모에서 자식으로)
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