오라클 계층형 쿼리
이전에 몇번 사용해 본거 같은데 오늘 조직도 관련하여 쓸일이 있어서 기술해 본다.
계층 관계가 있는 칼럼(외래키로 자기자신 테이블을 참조)이 있는 경우 계층 구조를 이용하여 데이터를 추출
select 칼럼 from 테이블 start with 조건 connect by [prior] [nocycle]
형식은 위 쿼리형태이다.
CREATE TABLE JOJIK (
GROUP_CD VARCHAR2(20)
, DEPT_CD VARCHAR2(20)
, DEPT_NM VARCHAR2(50)
, SUB_DEPT_CD VARCHAR2(20)
);
이렇게 테이블을 구성한뒤
SELECT LEVEL
, GROUP_CD
, LPAD(' ',(LEVEL-1)*2,' ')||DEPT_NM
, DEPT_CD
FROM JOJIK
START WITH SUB_DEPT_CD IS NULL
CONNECT BY PRIOR DEPT_CD = SUB_DEPT_CD
ORDER BY GROUP_CD, ORDER_SEQ;
이렇게 쿼리를 구성하면 멋지게 다음과 같이 결과가 나온다.
'030. Database > 01. Oracle' 카테고리의 다른 글
[Oracle] With 사용하기 (0) | 2016.04.02 |
---|---|
[Oracle] Create Table 속도 빠르게 (0) | 2016.04.02 |
[Oracle] Sqldeveloper 사용팁 - 자동 인사이트 대문자 이용 (2) | 2013.09.26 |
[Oracle] 테이블 컬럼 추가, 변경, 삭제 (0) | 2013.08.10 |
[Oracle] DB Job 시간 지정 참고 (0) | 2013.07.30 |
WRITTEN BY
- 테네시왈츠
항상 겸손하게 항상 새롭게 항상 진실하게
,