본문 바로가기

Oracle

Oracle 가상의 테이블을 만드는 방법


개발을 하다보니 날자별 누락 데이터를 찾아야 하는 경우가 생겨버렸다.

날자 테이블을 만들어 조인하여 찾아볼까 해봤지만 너무 무식한 방법이고

또 해마다 윤년이니 하는 여러 변수가 생기고 비효율적이라 생각하여 이것저것 뒤져보던중 

CONNECT BY LEVEL 이라는 문법이 있었다.

예를 들어 2010년 1월 1일 부터 10일까지의 날자를 쿼리 해야 한다면

SELECT TO_DATE('2010-01-01','YYYY-MM-DD') + LEVEL - 1 FROM DUAL CONNECT BY LEVEL <= 10

TO_CHAR(TO
----------
2010-01-01
2010-01-02
2010-01-03
2010-01-04
2010-01-05
2010-01-06
2010-01-07
2010-01-08
2010-01-09
2010-01-10

10 rows selected.

오옷 멋지지 아니한가...

'Oracle' 카테고리의 다른 글

Oracle Trigger 사용시 Mutating 오류가 발생하면.  (0) 2010.08.19