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

  1. 고마운사람 2020.09.06 13:02

    감사합니다 잘 정리되어있네요

+ Recent posts