구름조아
계층형 SQL 본문
1. 계층형 SQL
- 한 테이블안에 계층적인 데이터 구조를 가진 테이블에서 쉽게 데이터를 출력하기 위한 SQL문법.
select 컬럼명 from 테이블 where 조건절 start with 시작조건 connect by [nocycle] prior 관계방향 order [siblings] by 정렬조건 |
2. 계층형 전용 컬럼 및 함수
LEVEL | ROOT 부터 한단계씩 내려가면서 증가하는 번호 |
CONNECT_BY_ISLEAF | 각 전개별 최하위 리프에 1, 아니면 0 |
CONNECT_BY_ISCYCLE | 내부적인 값 오류 등으로 자식노드가 다시 내 부모노드가 되는 경우 1을 출력 |
SYS_CONNECT_BY_PATH | ROOT로 부터 각 ROW까지 전개된 데이터 경로를 출력 |
CONNECT_BY_ROOT | 각 전개한 데이터의 루트 데이터를 출력 |
3. 계층형 SQL 키워드
- ROOT와 LEAF
- 역방향 전개
- WHERE절 사용
- ORDER SIBLINGS BY
SELECT DEPT_CD ,LEVEL ,LPAD(' ', (LEVEL - 1) * 2) || DEPT_NM ,UP_DEPT_CD ,CONNECT_BY_ISLEAF -- ,CONNECT_BY_ISCYCLE ,SYS_CONNECT_BY_PATH(DEPT_NM, '-') ,CONNECT_BY_ROOT (DEPT_NM) FROM COMPANY_DEPT START WITH UP_DEPT_CD IS NULL CONNECT BY [NOCYCLE] PRIOR DEPT_CD = UP_DEPT_CD ORDER SIBLINGS BY DEPT_NM; |
'SQLD자격증공부 > SQL활용' 카테고리의 다른 글
윈도우함수 (0) | 2023.05.11 |
---|---|
그룹함수, Rollup, Grouping Sets, Cube (0) | 2023.05.11 |
비등가조인, 집합연산자, Union all, Intersect (0) | 2023.05.11 |
서브쿼리, 스칼라 서브쿼리, 인라인뷰, Exsits (0) | 2023.05.11 |
Join, Cross Join, Inner Join, Natural Join, Outer Join (0) | 2023.05.09 |