조각이론

계층내에서 정렬하기 ORDER SIBLINGS BY 본문

데이터베이스

계층내에서 정렬하기 ORDER SIBLINGS BY

조각이론 2019. 1. 13. 10:02
1. 테이블 데이터

    id=시퀀스, parent_id=부모키, name=자신의 이름, parent_name=부모의 이름, depth=단계
IDPARENT_IDNAMEPARENT_NAMEDEPTH
30root1null1
40root2null1
53root1-1root12
63root1-2root12
73root1-3root12
83root1-4root12
98root1-4-1root1-43
104root2-1root22
114root2-2root22
2. 계층형 쿼리

 SELECT ID, PARENT_ID, NAME, PARENT_NAME, TYPE

 FROM SITE_LIST

 START WITH PARENT_ID = 0   /* 부모의 시작 조건 */

 CONNECT BY PRIOR  ID = PARENT_ID /* 자신의 키와 부모키를 비교 */

 ORDER SIBLINGS BY PARENT_ID ASC, ID ASC; /* 정렬 (일반적인 ORDER BY 가 아닌 계층내에서 정렬 할 수 있는 ORDER SIBLINGS BY) */


3. 계층형 쿼리 후 정렬 결과
IDPARENT_IDNAMEPARENT_NAMEDEPTH
30root1null1
53root1-1root12
63root1-2root12
73root1-3root12
83root1-4root12
98root1-4-1root1-43
40root2null1
104root2-1root22
114root2-2root22



출처: http://blog.kjslab.com/11 [새 보다 자유롭게 - 자바 프로그래머 갈매기S(Jonathan Livingston Seagull)]