[Oracle]여러 행과 열의 위치변환(pivot, unpivot)

Oracle 11g 이상에서 지원하는 Pivot, Unpivot을 이용한다.

아래 쿼리를 참조하자

WITH T AS(
    SELECT 'A' GUBUN, 100 PLAN,  90 RECORD, 10 RATE FROM DUAL UNION ALL 
    SELECT 'B' GUBUN, 200 PLAN, 150 RECORD, 40 RATE FROM DUAL UNION ALL 
    SELECT 'C' GUBUN, 150 PLAN, 140 RECORD,  5 RATE FROM DUAL)
SELECT *
  FROM T
 UNPIVOT (VALUE FOR COL IN (PLAN, RECORD, RATE))
 PIVOT (MIN(VALUE) FOR GUBUN IN ('A' A, 'B' B, 'C' C))
ORDER BY DECODE(COL, 'PLAN', 1, 'RECORD', 2, 'RATE', 3) ASC;

원본 :

GUBUNPLANRECORDRATE
A1009010
B20015040
C1501405

결과 :

COLABC
PLAN100200150
RECORD90150140
RATE10405

참조사이트 : http://www.gurubee.net/article/86661

You may also like...

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다