파게로그

계층형 조회(CONNECT BY) 본문

콤퓨타 왕기초/SQLD/JDBC/Oracle DB

계층형 조회(CONNECT BY)

파게 2021. 3. 21. 14:55

CONNECT BY

SELECT MAX(LEVEL)
FROM EMP
START WITH MGR IS NULL
CONNECT BY PRIOR EMPNO = MGR;
  • 트리 구조로 질의를 수행하는 것
  • root 노드로부터 하위 노드의 질의를 시행
  • MAX(LEVEL)을 통해 최대 계층 수(leaf node의 계층값)를 구할 수 있음
  • START WITH: 시작 조건
  • CONNECT BY PRIOR: 조인 조건
EMPNO ENAME MGR
1000 '철수' NULL
1001 '영희' 1000
1002 '민수' 1000
1003 '은지' 1001
1004 '나현' 1002
1005 '동원' 1003
1006 '지아' 1003

 

 

SELECT LEVEL, LPAD(' ', 4 * (LEVEL-1)) || EMPNO, MGR, CONNECT_BY_ISLEAF
FROM EMP
START WITH MGR IS NULL
CONNECT BY PRIOR EMPNO = MGR;

 

CONNECT BY 키워드

LEVEL 검색 항목의 깊이. root node는 1
CONNECT_BY_ROOT 계층구조에서 최상위 값
CONNECT_BY_ITSELF 계층구조에서 최하위 값
SYS_CONNECT_BY_PATH 계층 구조의 전체 전개 경로
NOCYCLE 순환구조가 발생 지점까지만 전개됨
CONNECT_BY_ISCYCLE 순환구조의 발생 지점 표시

'콤퓨타 왕기초 > SQLD/JDBC/Oracle DB' 카테고리의 다른 글

group function  (0) 2021.03.21
subquery  (0) 2021.03.21
join  (0) 2021.03.19
TCL(Transaction Control Language)  (0) 2021.03.18
DCL(Data Control Language)  (0) 2021.03.18
Comments