DB SQL - 달력 생성 쿼리
Posted 02 2, 2009 09:04, Filed under: DataBase
# 한번의 광고 클릭으로, 당신을 대신해서 불우이웃을 도울 기회가 많아집니다.
with t as (
select to_date('200811','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)
쿼리 결과:
SUN MON TUE WED THU FRI SAT
---------- ---------- ---------- ---------- ---------- ---------- ----------
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
출처 : 쏘쿨 - www.soqool.com
select to_date('200811','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)
쿼리 결과:
SUN MON TUE WED THU FRI SAT
---------- ---------- ---------- ---------- ---------- ---------- ----------
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30
출처 : 쏘쿨 - www.soqool.com
"DataBase" 분류의 다른 글
| Database - 데이터의 성격 OLTP, DSS(OLAP) (0) | 2010/08/01 |
| DB - GROUP BY 절에서의 JOIN 실행계획 테스트 (0) | 2009/02/12 |
| DB - 테이블 데이타를 포함한 복사, 검색된 값 insert, update (0) | 2009/02/09 |
| DATABASE - 중복 찾기 QUERY & Group By절과 Having절 (0) | 2009/02/05 |
| DB - 내용, 문자열 중에서 REPLACE() 사용 특정 문구만 수정 (0) | 2009/02/02 |
# 한번의 광고 클릭으로, 당신을 대신해서 불우이웃을 도울 기회가 많아집니다.
Response :
0 Trackback
,
0 Comment
Trackback URL : http://develop.sunshiny.co.kr/trackback/111