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 39005 게시물 읽기
No. 39005
select 한 날자값(300개) 가로 출력
작성자
강영호
작성일
2011-10-25 16:17
조회수
5,200

안녕하세요 고수님들..

select a_dt from table 하면

20101206

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101208

20101216

20101216

20101216

20101216

20101216

... 이렇게 나오는데 이모든 세로 날짜를 가로로 출력을 할려고 합니다.

검색해봤는데 decode를 하기에는 너무 많아서요.. 어떤방법이 있는지요?

 

이 글에 대한 댓글이 총 3건 있습니다.
WITH TB AS 
(
SELECT '20101206' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101208' AS DT FROM DUAL UNION ALL
SELECT '20101216' AS DT FROM DUAL UNION ALL
SELECT '20101216' AS DT FROM DUAL UNION ALL
SELECT '20101216' AS DT FROM DUAL UNION ALL
SELECT '20101216' AS DT FROM DUAL UNION ALL
SELECT '20101216' AS DT FROM dual
)
 
SELECT DT 
FROM 
(
SELECT  CHILD,SYS_CONNECT_BY_PATH(DT,',') AS DT
FROM 
(SELECT ROWNUM AS CHILD,DT,ROWNUM-1 AS PARENT
FROM TB
)
start with PARENT =0
connect by prior CHILD = PARENT
) a,
(
SELECT MAX(CHILD) AS CHILD    -- order by  desc 로 가져와서 처리하거나 합시다. 
FROM 
(SELECT ROWNUM AS CHILD
FROM TB)
) b
WHERE 
a.CHILD = b.CHILD
;
 
 
 
더 깔끔한 방법은 아래 나올겁니다. 
당장 생각나는건 이거네요 ; 
 
cReAm(catz)님이 2011-10-26 11:08에 작성한 댓글입니다.
이 댓글은 2011-10-26 11:10에 마지막으로 수정되었습니다.

SELECT wm_concat(a_dt) FROM table;

마농(manon94)님이 2011-10-26 15:06에 작성한 댓글입니다.

 헐... 마농님 대박... ㅋ

wmsys유저소유의 함수네요... 없으면 생성하시면 되구요...

$ORACLE_HOME/rdbms/admin/owminst.plb

 

(어느버전까지 지원되는지 모르겠습니다. 전 10g에서 테스트)

가로<-->세로 변환하고는 약간 다르긴 하네요...

 

SQL> select serial# , wmsys.wm_concat(sid) sid from v$session

  2  group by serial#

  3  /


   SERIAL# SID

---------- ---------------------------------------------------------------

         1 143,145,151,160,157,156,161,163,165,170,169,168,167,166,164,162

         3 147

        43 149

 

,님이 2011-10-26 17:14에 작성한 댓글입니다.
이 댓글은 2011-10-26 17:15에 마지막으로 수정되었습니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39008오라클 간단한 통계 쿼리 질문입니다 [1]
흑꽁
2011-10-26
3994
39007위아래 값을 1개열로 만들기가 가능한가요? [2]
이태규
2011-10-26
3872
39006테이블 조인하여 UPDATE [1]
질문
2011-10-25
4400
39005select 한 날자값(300개) 가로 출력 [3]
강영호
2011-10-25
5200
39004전체의 값에서 나눌때 반올림시 숫자를 정확히 맞추기 [3]
윤명철
2011-10-25
4302
38999연속된값들의 갯수세기 [5]
이인호
2011-10-24
7462
38998프로시저안에서 원격지 프로시저를 호출할수 있나요? [2]
박주영
2011-10-24
4067
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.016초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다