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 40450 게시물 읽기
No. 40450
일련된 번호를 묶는것에 대해 문의드립니다.
작성자
초보
작성일
2014-05-13 02:28ⓒ
2014-05-13 02:29ⓜ
조회수
6,553

안녕하세요 고객이 이상한걸 요구해서 문의드립니다.

 

 

SELECT 31 FROM dual UNION ALL

SELECT 32 FROM dual UNION ALL

SELECT 34 FROM dual UNION ALL

SELECT 37 FROM dual UNION ALL

SELECT 38 FROM dual UNION ALL

SELECT 40 FROM dual UNION ALL

SELECT 41 FROM dual UNION ALL

SELECT 42 FROM dual UNION ALL

SELECT 43 FROM dual UNION ALL

SELECT 44 FROM dual UNION ALL

SELECT 45 FROM dual

 

 

결과는 '31~32,34,37~38,41~45' 이런식으로 나와야 하는데

도저히 답이 않나와서 문의드립니다.

 

연속된 번호는 연속시작값과 끝값을 ~ 로 묶고 떨어진 번호는 , 로 구분하면서 저런값이 나와야 하는데 정말 생각보다 힘드네요

 

고수님들 부탁드립니다.

 

감사합니다.

 

 

 

 

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

WITH t AS
(
SELECT 31 no FROM dual
UNION ALL SELECT 32 FROM dual
UNION ALL SELECT 34 FROM dual
UNION ALL SELECT 37 FROM dual
UNION ALL SELECT 38 FROM dual
UNION ALL SELECT 40 FROM dual
UNION ALL SELECT 41 FROM dual
UNION ALL SELECT 42 FROM dual
UNION ALL SELECT 43 FROM dual
UNION ALL SELECT 44 FROM dual
UNION ALL SELECT 45 FROM dual
)
SELECT LISTAGG(MIN(no) || DECODE(COUNT(*), 1, '', '~'||MAX(no)), ',')
       WITHIN GROUP(ORDER BY MIN(no)) no_range
  FROM (SELECT no FROM t ORDER BY no)
 GROUP BY ROWNUM - no
;

마농(manon94)님이 2014-05-13 09:43에 작성한 댓글입니다.

마농님 정말 대단하십니다. 

뭐라 형언할수 없을정도로 대단하십니다.

 

어떻게 은혜를 갚아야 할지 .... 

 

너무 감사드립니다. 

 

 

 

초보님이 2014-05-13 13:06에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
40453외부테이블에 의한 그룹핑에 대해 문의드립니다. [6]
초보
2014-05-14
6452
40452각 개인에게 순번채번할때 [2]
짠심이
2014-05-13
7142
40451어려운 쿼리 문의 [1]
꿈꾸러기
2014-05-13
7200
40450일련된 번호를 묶는것에 대해 문의드립니다. [2]
초보
2014-05-13
6553
40449우메한 질문 하나드립니다 [1]
물새
2014-05-12
6826
40448데이터수정 여부 어떤 식으로 관리하세요 [1]
율리시스
2014-05-12
6111
40447연속된 시작값 종료값 [1]
이기자
2014-05-07
6773
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.023초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다