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 39360 게시물 읽기
No. 39360
오라클 11g pivot 문의 드립니다.
작성자
차상환
작성일
2012-03-26 16:22
조회수
6,570

SELECT  'A1' AS COL1
       ,'A2' AS COL2
       ,'A3' AS COL3
       ,'G1' AS COL_A
  FROM DUAL
 UNION ALL
SELECT  'A1' AS COL1
       ,'A2' AS COL2
       ,'A3' AS COL3
       ,'G2' AS COL_A
  FROM DUAL
 UNION ALL
SELECT  'A1' AS COL1
       ,'A2' AS COL2
       ,'A3' AS COL3
       ,'G3' AS COL_A
  FROM DUAL
 UNION ALL
SELECT  'B1' AS COL1
       ,'B2' AS COL2
       ,'B3' AS COL3
       ,'G1' AS COL_A
  FROM DUAL
 UNION ALL
SELECT  'B1' AS COL1
       ,'B2' AS COL2
       ,'B3' AS COL3
       ,'G2' AS COL_A
  FROM DUAL
 UNION ALL
SELECT  'B1' AS COL1
       ,'B2' AS COL2
       ,'B3' AS COL3
       ,'G3' AS COL_A
  FROM DUAL 


-- COL_A는 가변(현재 ROW가 3이지만 4, 5도 될수 있음)
----------------------------------------------------------
COL1        COL2         COL3          COL_A
----------------------------------------------------------
A1                A2                 A3               G1
A1                A2                 A3               G2
A1                A2                 A3               G3     
B1                B2                B3               G1      
B1                B2                B3               G2
B1                B2                B3               G3

-- 를 아래와 같이 오라클 11g의 PIVOT(DECODE는 아니고)으로 구현할려고 합니다.


SELECT  'A1' AS COL1
       ,'A2' AS COL2
       ,'A3' AS COL3
       ,'G1' AS COL_A
       ,'G2' AS COL_B
       ,'G3' AS COL_C
  FROM DUAL
 UNION ALL
SELECT  'B1' AS COL1
       ,'B2' AS COL2
       ,'B3' AS COL3
       ,'G1' AS COL_A
       ,'G2' AS COL_B
       ,'G3' AS COL_C
  FROM DUAL 

----------------------------------------------------------------------------
COL1     COL2     COL3    COL_A      COL_B       COL_C
----------------------------------------------------------------------------
A1            A2              A3            G1            G2               G3
B1            B2             B3            G1            G2               G3

--가능할까요?  
 

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

PIVOT 이 가변적인 열을 처리하지는 못합니다.
XML 타입으로 하면 되긴 하지만 이게 원하시는 답일런지는 모르겠네요.


SELECT *
  FROM t
 PIVOT (MIN(col_a) FOR col_a IN ('G1','G2','G3'))
;

SELECT *
  FROM t
 PIVOT XML (MIN(col_a) FOR col_a IN (ANY))
;

마농(manon94)님이 2012-03-27 16:14에 작성한 댓글입니다.

답변감사합니다. 도움이 되었습니다.

차상환님이 2012-03-28 08:58에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
39364쿼리조언좀 부탁드립니다... [1]
피어스
2012-03-27
3545
39362ProC 에서 file 읽기
그림자
2012-03-27
3518
39361rownum을 부여하려고 하는데 잘 안되네용 ㅠㅠ [2]
최상민
2012-03-26
5100
39360오라클 11g pivot 문의 드립니다. [2]
차상환
2012-03-26
6570
39359동일 디스크상의 성능
물어보자
2012-03-26
3369
39358[질문]숫자를 조건으로값을 넘길때 전체 또는 조건 준것만 조회 [1]
안동석
2012-03-24
3375
39357prepareStatement에서 in을 쓰고 싶은데 방법이 없네요... [2]
doitbest
2012-03-23
3561
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다