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 41166 게시물 읽기
No. 41166
connect by 구문 질문
작성자
ASKO912
작성일
2016-05-31 10:49ⓒ
2016-05-31 10:51ⓜ
조회수
8,191

안녕하세요

sql질문이 있습니다.

 

BGN_DT END_DT
2014-01-01 2014-08-31
2015-01-07 2017-01-06

 

이렇게 나오는 쿼리를

년 단위로 끊어서

 

BGN_DT END_DT
2014-01-01 2014-08-31
2015-01-07 2015-12-31
2016-01-01 2016-12-31
2017-01-01 2017-01-06

 

이렇게 나오게 하고 싶은데요...CONNENT BY 구문을 써야 할 거 같은데 감이 안오네요..

답변 부탁드립니다.

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

WITH t AS
(
SELECT 1 idx, '2014-01-01' bgn_dt, '2014-08-31' end_dt FROM dual
UNION ALL SELECT 2, '2015-01-07', '2017-01-06' FROM dual
)
SELECT idx, lv
     , GREATEST(SUBSTR(bgn_dt, 1, 4) + lv - 1 || '-01-01', bgn_dt) bgn_dt
     , LEAST   (SUBSTR(bgn_dt, 1, 4) + lv - 1 || '-12-31', end_dt) end_dt
  FROM t
     , (SELECT LEVEL lv FROM dual CONNECT BY LEVEL <= 99)
 WHERE lv <= SUBSTR(end_dt, 1, 4) - SUBSTR(bgn_dt, 1, 4) + 1
 ORDER BY idx, lv
;

마농(manon94)님이 2016-05-31 15:00에 작성한 댓글입니다.
이 댓글은 2016-05-31 15:00에 마지막으로 수정되었습니다.

도움 많이 되었습니다.

답변 감사합니다~

ASKO912님이 2016-05-31 16:52에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
41170백업 관련 문의드립니다. (백업명령어 질문)
김삼
2016-06-02
7863
41169UDF 함수로 외부 C 라이브러리 호출 하는 것에 대해서..
초보DBA
2016-06-02
8689
41167dbms_crypto.hash(to_clob( + quatation 따옴표 사용 문의 [3]
박재덕
2016-06-01
8261
41166connect by 구문 질문 [2]
ASKO912
2016-05-31
8191
41164중복 값 제거 [1]
최상민
2016-05-27
8333
41163초를 시분초로 변환 하는 법 [1]
초보
2016-05-24
9132
41162마지막 번호 앞번호 추출 [1]
핸디핸디
2016-05-22
8642
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.019초, 이곳 서비스는
	PostgreSQL v16.4로 자료를 관리합니다