[SQL] 049. ROW를 COLUMN로 출력하기

Updated:

초보자를 위한 SQL 200제 교재를 토대로 공부한 내용입니다.

오라클 SQL을 기반으로 합니다.

실습에 사용한 테이블은 정보문화사 홈페이지에서 받을 수 있습니다.


[예시]

UNPIVOT으로 행을 열로 출력 가능하다.

내가 이해하기 쉽게 생각하면 기존 열들을 새로운 열의 값으로 정의해 출력한다.

UNPIVOT (값의 열 이름 FOR 열 이름의 열 이름 IN (기존 열 리스트)) 형태로 입력한다.

기존 열 이름을 값으로 가지는 새로운 열을 만든다.

기존 열들이 가지는 값을 가지는 새로운 열을 만든다.

우선 다음과 같은 원본 데이터를 확인하자.

-- 기존 데이터 구조 확인
SELECT *
FROM ORDER2;

[결과]

ENAME BICYCLE CAMERA NOTEBOOK
SMITH 2 3 1
ALLEN 1 2 3
KING 3 2 2
-- UNPIVOT은 기존 열 이름을 특정 열(추가)의 값으로 만드는 것
-- 지금은 기존 테이블에 NULL 값이 없지만 존재시 UNPIVOT하면 해당 행은 제외된다.
-- INCLUDE NULLS: NULL 값인 행도 결과에 포함하여 출력해준다.
SELECT *
FROM ORDER2
UNPIVOT INCLUDE NULLS (건수 FOR 아이템 IN (BICYCLE, CAMERA, NOTEBOOK));

[결과]

기존 열들의 이름을 값으로 가지는 아이템 열이 생성되었다.

기존 열들이 가지는 값을 가지는 건수 열이 생성되었다.

ENAME 아이템 건수
SMITH BICYCLE 2
SMITH CAMERA 3
SMITH NOTEBOOK 1
ALLEN BICYCLE 1
ALLEN CAMERA 2
ALLEN NOTEBOOK 3
KING BICYCLE 3
KING CAMERA 2
KING NOTEBOOK 2

Tags:

Categories:

Updated:

Leave a comment