고급 쿼리

수호천사임다·2024년 9월 20일

오라클

목록 보기
38/53

계층형 질의

내 밑에 모든 자식들 없애면 편함

-- 상위에서 하위로 출력 
SELECT num, subject, LEVEL, parent
FROM soft
START WITH num = 1 -- 출력을 시작할 최상위 행 
CONNECT BY PRIOR num = parent; -- 계층관계
-- 나(num)를 부모를 사용하는 행(자식을 검색) 
-- parent 컬럼: 상위 정보를 가지고 있음 
SELECT num, subject, LEVEL, parent
FROM soft
START WITH num = 2 -- 먼저 출력할 최상위 
CONNECT BY PRIOR num = parent;

SELECT num, LPAD('  ', (LEVEL - 1) * 4) || subject subject,
LEVEL, parent
FROM soft
START WITH num = 1 -- 출력을 시작할 최상위 행 
CONNECT BY PRIOR num = parent; -- 계층관계

-- 하위에서 상위로 출력
SELECT num, subject, LEVEL, parent
FROM soft
START WITH num = 15
CONNECT BY PRIOR parent = num;
-- 하나만 출력 

0개의 댓글