상세 컨텐츠

본문 제목

2020년 1월 2일 IT - Oracle 주차 확인 Query

IT

by 新感 2020. 1. 2. 10:42

본문

SELECT TO_CHAR (BASE_MON + LEVEL - 1, 'YYYYMMDD') TODAY,
TO_CHAR (BASE_MON + LEVEL - 1, 'dd') DD,
TO_CHAR (BASE_MON + LEVEL - 1, 'd') D,
CASE
WHEN TO_CHAR (BASE_MON + LEVEL - 1, 'd') = 7 THEN '토'
WHEN TO_CHAR (BASE_MON + LEVEL - 1, 'd') = 6 THEN '금'
WHEN TO_CHAR (BASE_MON + LEVEL - 1, 'd') = 5 THEN '목'
WHEN TO_CHAR (BASE_MON + LEVEL - 1, 'd') = 4 THEN '수'
WHEN TO_CHAR (BASE_MON + LEVEL - 1, 'd') = 3 THEN '화'
WHEN TO_CHAR (BASE_MON + LEVEL - 1, 'd') = 2 THEN '월'
WHEN TO_CHAR (BASE_MON + LEVEL - 1, 'd') = 1 THEN '일'
ELSE ''
END AS YOIL,
TO_CHAR (BASE_MON + LEVEL - 1 + 1, 'iw') WK
FROM (
-- 해가 바뀌면 정확한 월을 찾아가기 위함 포함
SELECT TO_DATE( DECODE( SUBSTRB( TO_CHAR( SYSDATE, 'YYYYMM' )-1, 5, 6 ), '00', TO_CHAR( SYSDATE, 'YYYY' ) - 1 || '12', TO_CHAR( SYSDATE, 'YYYYMM' )-1 ), 'YYYYMM' ) BASE_MON
FROM DUAL ) CONNECT BY BASE_MON + LEVEL - 1 <= LAST_DAY(BASE_MON)

 

[CONNECT BY]

1. CONNECT BY 를 쓰는 순간 무한 LEVEL이 생김

 

SELECT LEVEL

FROM DUAL

CONNECT BY LEVEL <= 1000000;

 

SELECT TO_DATE('20110101','YYYYMMDD') + LEVEL - 1

FROM DUAL

CONNECT BY LEVEL <= 31

[출처] 오라클 CONNECT BY 정리입니다.|작성자 wscellbox

 

 

※ 이 글은 개인적인 공부를 위해 작성함을 알려드립니다.

'IT' 카테고리의 다른 글

2020년 1월 3일 IT - Oracle Table Alter  (0) 2020.01.03
2020년 1월 2일 IT - Oracle Loop  (0) 2020.01.02
2020년 1월 2일 IT - Oracle Pivot  (0) 2020.01.02
2020년 1월 2일 IT - SSL  (0) 2020.01.02
2020년 1월 2일 IT - Oracle Table Space 조회  (0) 2020.01.02

관련글 더보기

댓글 영역