[Oracle] 오라클 열을 행으로 변환하기 (UNPIVOT)

저번 포스팅에서 행을 열로 바꾸는 PIVOT절에 대해 알아보았습니다. 항상 언어는 반대의 속성도 가지고 있습니다. 행을 열로 바꾸는 방법이 있으면 열을 행으로 바꾸는 방법도 있습니다. 열을 행으로 바꿔주는 방법은 UNPIVOT절을 활용하면 됩니다.

[Oracle] 오라클 행을 열로 변환하기 (PIVOT)


샘플 데이터

SELECT * FROM SCORE

위의 데이터는 시험명으로 국어, 수학, 영어 성적을 나타낸 데이터입니다. UNPIVOT의 컬럼과 로우를 바꿔주는 기능을 활용하여 위 데이터의 열과 행을 바꿔보도록 하겠습니다.


UNPIVOT을 활용하여 열을 행으로 바꾸기

SELECT 컬럼
FROM (조회할 데이터 SELECT문) OR 테이블
UNPIVOT(가상 컬럼1) FOR (가상 컬럼2) IN (열으로 내릴 행컬럼));
SELECT * FROM 
SCORE
UNPIVOT
(
SCORE
FOR 
SBJECTS IN(KOREAN, MATH, ENGLISH)
);

FOR컬럼 IN(컬럼1, 컬럼2,) 식으로 나열하면 IN절 안의 값이 로우로 변환되고 나머지는 출력용 가상 컬럼이 됩니다. 위와같이 UNPIVOT을 사용하면 간편한 명령어로 행을 열로 변환을 할 수 있습니다. 

댓글(2)

Designed by JB FACTORY