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) 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
728x90
반응형