반응형
/* 계층형 쿼리 간단 예제 */
CREATE TABLE TAB1 (
    C1 VARCHAR2(1),
    C2 VARCHAR2(1),
    C3 VARCHAR2(1) );
    
    
INSERT INTO TAB1 VALUES ('1', NULL, 'A');
INSERT INTO TAB1 VALUES ('2', '1', 'B');
INSERT INTO TAB1 VALUES ('3', '1', 'C');
INSERT INTO TAB1 VALUES ('4', '2', 'D');

SELECT * FROM TAB1;
    
/*ORDER SIBLINGS BY : 계층구조는 그대로 유지하면서
동일 부모를 가진 자식들끼리의 정렬 기준을 주는 것 */
SELECT *
    FROM TAB1
START WITH C2 IS NULL
CONNECT BY PRIOR C1 = C2
ORDER SIBLINGS BY C3 DESC;

 

start with 최상위 노트 설정

connect by 부모 - 자식 노트 연결

 

START WITH C2 IS NULL 

 

>> 1 NULL A

 

CONNECT BY PRIOR C1 = C2

ORDER SIBLINGS BY C3 DESC

 

>> 3 1 C

>> 2 1 B

 

CONNECT BY PRIOR C1 = C2

 

>> 4 2 D

 

 

1 NULL A

3     1     C

2     1     B

4     2     D

반응형