계층형 구조 데이터는 보통 조직이나 지역 등.. 한 테이블에 계층형(레벨) 구조로 데이터를 관리를 많이 합니다.
예를 들면 아래 예시와 같이 지역정보가 한개의 테이블로 마스터를 관리할 경우.
* 지역 마스터 테이블
- 지역코드 / 지역명 / 상위지역코드 / 레벨
지역 정보가 한 테이블에 계층형으로 존재할때 START WITH.. CONNECT BY 문을 이용하여 편리하게 하위 리스트 가지고 올 수 있습니다.
* 지역샘플데이타
SELECT * FROM Z_AERA
테스트 1)
서울시(A01) 내에 속한 지역 조회
SELECT * FROM Z_AERA
WHERE 1=1
START WITH ARE_CD = 'A01'
CONNECT BY PRIOR ARE_CD = UP_ARE_CD
테스트 2)
강원도(A03) 내에 속한 지역 조회
SELECT * FROM Z_AERA
WHERE 1=1
START WITH ARE_CD = 'A03'
CONNECT BY PRIOR ARE_CD = UP_ARE_CD
테스트 3)
전제 지역으로 조회할 때
SELECT * FROM Z_AERA
WHERE 1=1
START WITH ARE_CD ='ALL'
CONNECT BY PRIOR ARE_CD = UP_ARE_CD
보통 이러한 쿼리는 조회 조건이 다양한 레벨의 조회 조건일 때 사용을 많이 합니다.
즉. 강원도로 조회할 수 있고, 또는 하위 레벨인 동해시로 조회 할 때 해당 지역 내의 모든 지역별 매출을 분석할 때 유용하게 사용됩니다.
어떤 레벨(상위 레벨/ 하위 레벨)로 조회했는지 신경 쓸 필요가 없는 거죠^^
간단하지만 가끔 문법이 생각나지 않을 때가 있어서 적어 봅니다.
'기술' 카테고리의 다른 글
티베로(Tibero) 제공 분석함수(analytic_function)정리 - 티멕스 제공 (0) | 2022.11.24 |
---|---|
[오라클 / 티베로] UTL_FILE 패키지를 이용한 개인정보 암호화 키 OS파일 읽기 (2) | 2022.11.07 |
[기술]티베로(Tibero) 최근 실행한 쿼리 이력 히스토리 확인방법 (4) | 2022.10.26 |
한글입력이 안될때 이상하게 한글이 깨질때 (0) | 2022.10.14 |
[기술] 오라클 티베로 스냅샷 TIMESTAMP을 이용한 데이타 복원 (0) | 2022.10.08 |