본문 바로가기
Library/SQL

[ORACLE] CONNECT BY(계층형 조회)

by kdg99 2023. 6. 15.
--레벨, LPAD(문자, 개수)||컬럼명, 부서코드
    SELECT LEVEL,
           LPAD (' ', (LEVEL - 1) * 3) || DEPT_NAME AS DEPT_NAME,
           DEPT_CODE
      FROM DEPT
START WITH LEV = '1' --최상위레벨
CONNECT BY PRIOR DEPT_CODE = UP_DEPT_CODE --부서코드 = 직속상위부서코드
  ORDER SIBLINGS BY LEV ASC;
/* LEVEL == CONNECT BY 절에서 생성된다 */
SELECT *, LEVEL
FROM <TABLE>
/* 깊이 측정에 사용할 컬럼과 최상위 값 LEVEL 1 */
START WITH <부서코드> = '1000'
/* 부서값과 상위부서코드 -> 깊이 계산 */
CONNECT BY PRIOR <부서코드> = <상위부서코드>
/* 상위부서코드가 1000인 부서의 LEVEL(깊이)은 2 */

 

'Library > SQL' 카테고리의 다른 글

[ORACLE] MAX, ROW인 행 조회하기  (0) 2023.08.11
[ORACLE] 년, 월, 일, 시, 분, 초 추출  (0) 2023.08.11
[SQL] SELECT 1 FROM <TABLE>  (0) 2023.08.03
[SQL] WHERE 1 = 1  (0) 2023.08.03

댓글