database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 41715 게시물 읽기
No. 41715
기간을 연도별로 분할하기
작성자
허광민(hgm0302)
작성일
2019-04-24 13:43:30
조회수
207

예를들어 기간이 20180501~20200531 인경우

 

startdt          enddt

20180501    20181231

20190101    20191231

20200101    20200531

 

이런식으로 데이터를 추출하고싶은데 쿼리가 쉽게 나오지 않네요 도움 부탁드립니다.

이 글에 대한 댓글이 총 1건 있습니다.

WITH t AS
(
SELECT 1 pk, '20180501' sdt, '20200531' edt FROM dual
)
SELECT pk
     , GREATEST(sdt, (SUBSTR(sdt, 1, 4) + lv - 1) || '0101') sdt
     , LEAST   (edt, (SUBSTR(sdt, 1, 4) + lv - 1) || '1231') edt
  FROM t
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 20)
 WHERE lv <= SUBSTR(edt, 1, 4) - SUBSTR(sdt, 1, 4) + 1
 ORDER BY pk, sdt
;

마농(manon94)님이 2019-04-25 16:52:45에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
41718where절을 이용한 join에 관한 문의입니다! [4]
정우리
2019-05-01
219
41717기초질문: sysdba 로 로그인할때 에러 [2]
김슬기
2019-04-29
179
41716shell 수행 관련 내용입니다 [1]
탁구공
2019-04-27
168
41715기간을 연도별로 분할하기 [1]
허광민
2019-04-24
207
41714다건row에서 하나라도 포함된경우 [1]
어려워
2019-04-23
185
41712partition by 문의 [3]
량디
2019-04-22
226
41711감자기 연결이 안 되네요...
신승익
2019-04-18
179
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.085초, 이곳 서비스는
	PostgreSQL v11.3으로 자료를 관리합니다