상세 컨텐츠

본문 제목

오라클 열(컬럼)을 행(로우)으로 변경하는 쿼리

DataBase/Oracle

by 탑~! 2012. 12. 27. 10:02

본문



가로로 늘어선 컬럼을 로우로 변환하는 오라클 쿼리이다.


SELECT  CURRENCY_CODE,
        BASE_DATE,
        DECODE(T.NO, 1, 'D7', 2, 'M1', 3, 'M2', 4, 'M3', 5, 'M4', 6, 'M5', 7, 'M6', 8, 'M7', 9, 'M8', 10, 'M9', 11, 'M10', 12, 'M11', 13, 'M12') PERIOD,
        DECODE(T.NO, 1, D7, 2, M1, 3, M2, 4, M3, 5, M4, 6, M5, 7, M6, 8, M7, 9, M8, 10, M9, 11, M10, 12, M11, 13, M12) RATE
FROM    RATE L, (SELECT ROWNUM NO, TO_CHAR(ROWNUM, 'FM00') NO2 FROM USER_OBJECTS WHERE ROWNUM < 14) T
WHERE   T.NO <= 13
ORDER BY CURRENCY_CODE, BASE_DATE, T.NO



T.NO 부분에 조건절은 쿼리로 만들 필드의 수와 맞아야 한다.


참고로 테이블(RATE)의 필드는 다음과 같다.

CURRENCY_CODE

BASE_DATE

D7

M1


M12

     


쿼리를 하면 CURRENCY_CODE, BASE_DATE, PERIOD, RATE를 필드로 가지는 결과물이 쿼리된다.



출처 : http://takuma99.tistory.com/142

관련글 더보기