ORACLE 계층형 쿼리 만들기 - 1
1 2 3 4 5 6 7 8 | -- START WITH 부모로 지정될 ROOT 행 지정 -- CONNECT BY PRIOR 자식 컬럼 = 부모컬럼 부모에서 자식으로 트리구성 TOP-DOWN 구조 -- 왼쪽에 LEVEL만큼 특수문자 ┖를 추가하여 계층구조로 조회하는 예제 SELECT LEVEL, LPAD('┖', 2*(LEVEL-1)) || ENAME ENAME, EMPNO, MGR, JOB FROM EMP START WITH JOB='PRESIDENT' CONNECT BY PRIOR EMPNO=MGR; | cs |
출력결과
ORACLE 계층형 쿼리 만들기 - 2
1 2 3 4 5 | SELECT LEVEL AS DEPTH, LPAD('┖', 2*(LEVEL-1)) || CODE_CD AS CODE_CD, UPCODE_CD, LPAD('┖', 2*(LEVEL-1)) || CODE_NM AS CODE_NM FROM SYS_CODEINFO START WITH CODE_CD='00000' CONNECT BY PRIOR CODE_CD=UPCODE_CD; | cs |
출력결과
LEVEL, START WITH, CONNECT BY PRIOR 문장을 통해
계층형 쿼리를 작성할 수 있고 현재 코드값과 상위코드값, 코드네임을 계층적으로 출력할 수 있다.
'전체 > Oracle' 카테고리의 다른 글
ORACLE PIVOT과 UNPIVOT 정리 (2) | 2017.06.09 |
---|---|
ORACLE 정규표현식 SUBSTR, REPLACE, INSTR, DECODE, TRIM 사용하기 (2) | 2017.06.05 |
정규표현식 (0) | 2017.05.31 |
oracle 행을 열로 바꾸기, 가장 큰값, 평균 큰값 출력하기 (0) | 2017.05.23 |
DUAL 테이블에서 00~23 시 까지 입력된 컬럼에 현재 시간 찍기 (0) | 2017.05.18 |