DataBase/Oracle
오라클 열(컬럼)을 행(로우)으로 변경하는 쿼리
탑~!
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) RATEFROM RATE L, (SELECT ROWNUM NO, TO_CHAR(ROWNUM, 'FM00') NO2 FROM USER_OBJECTS WHERE ROWNUM < 14) TWHERE T.NO <= 13ORDER 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
728x90
반응형