본문 바로가기

개발/데이터베이스

[ORACLE] 계층 쿼리 (START WITH CONNECT BY)

반응형

계층 쿼리(hierarchical query)


계층 쿼리는 상하관계(부모-자식)의 트리 형식 구조이다. 기본 문법은 START WITH... CONNECT BY 형식이다.


 

계층 쿼리 작성 방법

SELECT 컬럼명 FROM 테이블명 WHERE 조건절 START WITH 부모조건(루트조건) CONNECT BY 부모(루트)와 자식(하위) 연결 조건;

 


 

예시쿼리

테이블이 아래와 같은 계층 구조로 이루어져 있다고 가정하자.

아래의 쿼리는 DEPT라는 가상의 테이블이 있다는 가정하에 작성되었다.

▶ DEPT 테이블

CD PARENT_CD DEP_NAME
PRS NULL 대표이사
VPRS PRS 부사장
WEB VPRS 웹개발팀
AT WEB A사업
BT WEB B사업
CT WEB C사업
APP VPRS 앱개발팀
ANDT APP Android
IOST APP iOS


▶ 계층 쿼리 예시

--LEVEL(현재 레벨을 반환하는 컬럼) SELECT LEVEL, CD, PARENT_CD, DEP_NAME FROM DEPT START WITH PARENT_CD IS NULL --PRIOR(직전 상위노드(부모) 값을 반환) CONNECT BY PRIOR CD = PARENT_CD ORDER BY LEVEL;


▶ 결과

LEVEL CD PARENT_CD DEP_NAME
1 PRS NULL 대표이사
2 VPRS PRS 부사장
3 WEB VPRS 웹개발팀
3 APP VPRS 앱개발팀
4 AT WEB A사업
4 BT WEB B사업
4 CT WEB C사업
4 ANDT APP Android
4 IOST APP iOS





반응형

'개발 > 데이터베이스' 카테고리의 다른 글

[ORACLE] INSERT ALL 구문  (0) 2021.10.30
[ORACLE] DB LINK 확인 쿼리  (0) 2021.10.19
[ORACLE] MERGE  (0) 2021.10.17
[ORACLE] FUNCTION(함수) 만들기 및 사용하기  (0) 2021.10.16
[ORACLE] INSERT, DELETE, UPDATE  (0) 2021.10.15