본문 바로가기
Database/Oracle

[Oracle] 컬럼을 행으로 변경

by 센텀Dev 2017. 8. 3.

## 여러개 컬럼을 하나의 컬럼으로 변경

 

WITH TT AS

(

SELECT 1 AS EMP_ID, 10 AS A_VAL, 20 B_VAL, NULL AS C_VAL FROM DUAL

UNION ALL

SELECT 2 AS EMP_ID, 30 AS A_VAL, 40 B_VAL, 50 AS C_VAL FROM DUAL

UNION ALL

SELECT 3 AS EMP_ID, 60 AS A_VAL, 70 B_VAL, 80 AS C_VAL FROM DUAL

)

SELECT EMP_ID

, KEY_1

, VAL_1

FROM TT

UNPIVOT (VAL_1 FOR KEY1 IN (A_VAL AS 'A', B_VAL AS 'B', C_VAL AS 'C'))

WHERE 1=1

AND EMP_ID < 3;

 

## 결과 ##

EMP_ID KEY_1 VAL_1

-------------------------------------

1 A 10

1 B 20

2 A 30

2 B 40

2 C 50