반응형
/* 계층형 쿼리 간단 예제 */
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
반응형
'DATABASE > Oracle' 카테고리의 다른 글
[oracle 함수] CONCAT, || / DECODE, CASE WHEN / OVER() / NVL, NVL2 (0) | 2021.09.14 |
---|---|
다운로드 링크 사라진 Oracle 11g 설치하기 (0) | 2021.08.04 |