시간 예시가 2018년 03-27일 14시 10분이라고 가정을하고
2018년 03-27일 14시 00분 가지 1분단위로
데이터를 가져오고싶습니다
참고해야할 테이블엔 데이터가
2018년 03-27일 14시 10분
2018년 03-27일 14시 09분
2018년 03-27일 14시 08분
이렇게 3개의 데이터밖에 없다고 가정할때
2018년 03-27일 14시 10분 데이터
2018년 03-27일 14시 09분 데이터
2018년 03-27일 14시 08분 데이터
2018년 03-27일 14시 07분 널
2018년 03-27일 14시 06분 널
2018년 03-27일 14시 05분 널
2018년 03-27일 14시 04분 널
2018년 03-27일 14시 03분 널
2018년 03-27일 14시 02분 널
2018년 03-27일 14시 01분 널
이런식으로 비어있는 시간에는 널을 채워서 가져오고 싶은데 쿼리를 어떻게 짜야할지 모르겠어요 도와주세요 ㅠㅠ
2018년 03-27일 14시 00분
WITH data_t AS ( SELECT '2018-03-27 14:10' tm, 1 v FROM dual UNION ALL SELECT '2018-03-27 14:09', 2 FROM dual UNION ALL SELECT '2018-03-27 14:08', 3 FROM dual ) , base_t AS ( SELECT TO_CHAR(stm + (LEVEL-1) * 1/24/60, 'yyyy-mm-dd hh24:mi') tm FROM (SELECT TO_DATE('2018-03-27 14:00', 'yyyy-mm-dd hh24:mi') stm , TO_DATE('2018-03-27 14:10', 'yyyy-mm-dd hh24:mi') etm FROM dual ) CONNECT BY LEVEL <= (etm - stm)*24*60 + 1 ) SELECT a.tm , b.v FROM base_t a , data_t b WHERE a.tm = b.tm(+) ORDER BY a.tm DESC ;