--레벨, 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 |
댓글