본문 바로가기

아이티/oracle&DB

달력생성쿼리의 새버전을 공개합니다.

제 홈페이지와 아래 사이트들에서 포스팅 해놓은 내용을 확인하실 수 있습니다.
http://www.soqool.com/servlet/board?cmd=view&cat=100&subcat=1010&seq=69#3398
http://www.orafaq.com/forum/t/94953/78939/
http://www.orafaq.com/node/2029


쏘쿨 - www.soqool.com


with t as (
select to_date('200902','yyyymm') ym from dual)
SELECT * FROM (
SELECT MIN (DECODE (TO_CHAR (YM + LEVEL - 1, 'd'), '1', LEVEL)) SUN
      , MIN (DECODE (TO_CHAR (YM + LEVEL - 1, 'd'), '2', LEVEL)) MON
      , MIN (DECODE (TO_CHAR (YM + LEVEL - 1, 'd'), '3', LEVEL)) TUE
      , MIN (DECODE (TO_CHAR (YM + LEVEL - 1, 'd'), '4', LEVEL)) WED
      , MIN (DECODE (TO_CHAR (YM + LEVEL - 1, 'd'), '5', LEVEL)) THU
      , MIN (DECODE (TO_CHAR (YM + LEVEL - 1, 'd'), '6', LEVEL)) FRI
      , MIN (DECODE (TO_CHAR (YM + LEVEL - 1, 'd'), '7', LEVEL)) SAT
   FROM T
CONNECT BY LEVEL <= LAST_DAY (YM) - YM + 1
  GROUP BY TRUNC (YM + LEVEL, 'iw')
  ORDER BY 7)

--정말 깔끔하군 -_-* 훗 언젠가 써먹겠지.. 분석은 귀찮아서 패스~
반응형