가로로 늘어선 컬럼을 로우로 변환하는 오라클 쿼리이다.
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
반응형
'DataBase > Oracle' 카테고리의 다른 글
| Oracle Tablespace 생성 및 사용자 생성, 권한 주기 (0) | 2013.03.29 |
|---|---|
| Tablespace 및 User 생성 (0) | 2013.03.18 |
| HSODBC 를 이용하여 Oracle -> MSSQL 이기종 간에 DB Link (1) | 2012.09.26 |
| Oracle 사고친 유저 찾아보자 (0) | 2012.08.23 |
| 오라클 달력과 관련해서... (0) | 2012.08.23 |