계층구조쿼리를 공부하다보면 만나는 SQL문이 CONNECT BY LEVEL
이다. 오늘 공부한김에 이해한 내용을 정리해보겠다.
보통은 PRIOR이랑 엮여서 쓰이는 경우가 많다 SCOTT 계정 기준으로
SELECT LEVEL, LPAD(' ', 4*(LEVEL-1)) || ename ename, empno, CONNECT_BY_ROOT empno ,mgr, job
FROM emp
START WITH job='PRESIDENT'
CONNECT BY PRIOR empno=mgr;
KING부터 시작해서 결과 값을 보여준다.
따로 떼어서 LEVEL을 활용해 써보면 일반적인 FOR문이랑 비슷하다고 생각해도 될 것 같다.
SELECT LEVEL FROM DUAL CONNECT BY LEVEL <= 10;
SELECT LEVEL*0.1 FROM DUAL CONNECT BY LEVEL <= 10;
SELECT LEVEL*-1 FROM DUAL CONNECT BY LEVEL <= 10;
SELECT 11-LEVEL FROM DUAL CONNECT BY LEVEL <= 10;
이렇게 하면 LEVEL 값에 따라 결과가 다르게 나온다.
앞으로도 계속 만날텐데 잘 기억해둬야겠다.
'Database > ORACLE' 카테고리의 다른 글
ORACLE 12C SAMPLE DATABASE 만들기 (0) | 2019.04.30 |
---|---|
ORACLE ) Dual 사용해보기 (0) | 2019.04.30 |
내가 보려고 작성하는 Oracle12 & DataStage 설치 (0) | 2019.04.29 |