문제
아래 SQL을 참고하여 해당월의 마지막 법정 영업일자를 구하는 SQL을 작성(법정 영업일은 월~금요일)
SELECT TO_CHAR(SYSDATE,'DDD'),
TO_CHAR(SYSDATE,'DD'),
TO_CHAR(SYSDATE,'D')
FROM DUAL;
SELECT LAST_DAY(SYSDATE) FROM DUAL;
정답1 (CASE 활용)
SELECT CASE
WHEN TO_CHAR(LAST_DAY(SYSDATE), 'DAY') = '일요일' THEN TO_CHAR(LAST_DAY(SYSDATE)-2)
WHEN TO_CHAR(LAST_DAY(SYSDATE), 'DAY') = '토요일' THEN TO_CHAR(LAST_DAY(SYSDATE)-1)
ELSE TO_CHAR(LAST_DAY(SYSDATE))
END AS LAST_WORK_DAY
FROM DUAL;
정답2 (DECODE 활용)
SELECT DECODE(TO_CHAR(LAST_DAY(SYSDATE), 'DAY'), '일요일', TO_CHAR(LAST_DAY(SYSDATE)-2),
'토요일', TO_CHAR(LAST_DAY(SYSDATE)-1),
TO_CHAR(LAST_DAY(SYSDATE)))
AS LAST_WORK_DAY
FROM DUAL;
'데이터베이스 > ORACLE' 카테고리의 다른 글
[ORACLE] 82년도에 입사한 직원 찾기(LIKE 활용) (0) | 2020.05.29 |
---|---|
[ORACLE] DISTINCT 함수의 알고리즘 차이(9i VS 10g) (0) | 2020.05.29 |
[ORACLE] DATE 타입의 포맷을 알아봅시다 (0) | 2020.05.29 |
[ORACLE] 다른 언어로 DATE 나타내기(세션 변경 / 선언문 내에만 적용) (0) | 2020.05.29 |
[ORACLE] EXTRACT 함수의 결과 데이터 타입은 무엇일까 (2) | 2020.05.29 |