일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 클라이언트
- SQLP
- 메소드
- springboot
- socket
- 인덱스 튜닝
- Spring
- 카카오코딩테스트
- 친절한 sql튜닝
- 생성자
- 멀티쓰레드
- Oracle
- 깃허브
- 상속
- Undo
- 클래스
- DBA
- 서버
- 인스턴스
- db버퍼캐시
- 인덱스
- Swing
- 컬렉션프레임워크
- SQL
- java
- 백준
- 자바
- 오라클
- DB
- 친절한 SQL 튜닝
- Today
- Total
프리 정보 컨텐츠
oracle connect by level 예제와 활용 본문
connect by level과 rownum을 활용한 간단한 예제를 알아보자.
oracle에서 connect by level을 사용하면 원하는만큼의 행을 리턴할 수 있어서
주로 날짜를 가져올 때 유용하게 사용한다.
select
rownum,
level as no
from
dual
connect by
level <= 10;
-- 현재년 1월부터 12월까지 달 출력
select
to_char(sysdate, 'yyyy') || '년 ' || lpad(level, 2, 0) || '월' Y_M
from
dual
connect by
level <= 12;
-- 특정 날짜 구간 조회
select
V_DATE
from
(
select
to_char(to_date('20211101', 'YYYY-MM-DD') + LEVEL - 1, 'YYYY-MM-DD') V_DATE
from
DUAL
connect by
LEVEL <= to_date('20211130', 'YYYY-MM-DD') - to_date('20211101', 'YYYY-MM-DD') + 1
);
-- connect by level 응용
select
trunc(sysdate, 'month') + (LEVEL - 1) as TDAY
from
DUAL
connect by
LEVEL <= (LAST_DAY(sysdate) - trunc(sysdate, 'month') + 1);