728x90
반응형
자주 사용 하지만
사용할 때마다 헷갈려서
따로 포스팅으로 정리해 봅니다.
CONNECT BY LEVEL은연속된 숫자를 조회할 때 사용하는 계층 쿼리입니다.
예제> 5 이하의 숫자를 차례로 조회
SELECT LEVEL
FROM DUAL
CONNECT BY LEVEL < 5

CONNECT BY LEVEL을 사용하여
주말, 평일을 구분해보도록 하겠습니다.
예제> 지정한 기간 동안의 일자가 주말인지 평일인지 구분하여 조회
SELECT
TO_CHAR(YYYYMMDD, 'YYYYMMDD') AS 일자
, CASE WHEN TO_CHAR(YYYYMMDD, 'd') IN (1, 7) THEN '주말'
ELSE '평일'
END AS 주중구분
FROM
(
SELECT START_DATE + LEVEL - 1 YYYYMMDD
FROM
(
SELECT TO_DATE('20221101', 'YYYYMMDD') START_DATE
, TO_DATE('20221130', 'YYYYMMDD') END_DATE
FROM DUAL
)
CONNECT BY
LEVEL <= END_DATE - START_DATE + 1 )
CONNECT BY LEVEL을 사용하여
지정한 일자를 순서대로 나열한 후 TO_CHAR(YYYYMMDD, 'd')을 사용하여 주말, 평일을 구분합니다.
TO_CHAR(YYYYMMDD, 'd')의 값은 주 중의 일을 1~7까지로 표시합니다.
1 : 일요일
2 : 월요일
3 : 화요일
4 : 수요일
5 : 목요일
6 : 금요일
7 : 토요일
TO_CHAR(YYYYMMDD, 'd')을 이용하여
1,7은 주말
그 외의 값은 평일로 정의합니다.
조회 결과입니다.

이상 오라클에서 평일, 주말 일자 조회 쿼리였습니다.
728x90
반응형
'소소한 ORACLE 지식' 카테고리의 다른 글
[오라클 삭제] 오라클 클라이언트 삭제 방법 (15) | 2022.08.04 |
---|---|
[Oracle]오라클 랜덤 함수를 이용한 점심 메뉴(식당) 정하기 (36) | 2022.06.04 |
[오라클]Oracle 날짜 함수 (20) | 2022.05.16 |
[오라클]Oracle 숫자 함수 (10) | 2022.05.14 |
[오라클]Oracle 문자 함수 (5) | 2022.05.13 |
댓글