DATABASE/ORACLE 기본

[Oracle] 오라클 가로 데이터를 세로로 출력하는 방법 UNPIVOT()

ThinkFree 2022. 7. 11. 19:40

 

UNPIVOT()

 - UNPIVOT을 사용하면 PIVOT과 반대로 가로로 출력되는 데이터를 세로로 출력할 수 있습니다.

 

 

 

UNPIVOT() 문법

 SELECT *
   FROM ( 테이블 )
UNPIVOT (가상컬럼1 FOR 가상컬럼2 IN (세로로 출력할 컬럼들 ...));

 - UNPIVOT()으로 데이터를 세로로 출력하기 두 개의 가상컬럼을 사용해줍니다. 첫 번째 가상컬럼1은 데이터를 세로로 UNPIVOT시켜 출력시켜줄 컬럼명입니다. 이 열의 이름은 임의로 지정하면 됩니다.  FOR 다음에 가상컬럼2는 가로로 되어 있는 테이블의 컬럼명UNPIVOT 시켜 세로로 출력할 열의 이름입니다. 이 열의 이름 역시 임의로 지정해주면 됩니다. 

 

가상컬럼1 = 데이터

가상컬럼2 = 컬럼명

 

 

UNPIVOT() 테스트(https://livesql.oracle.com/)

1) UNPIVOT()

 - UNPIVOT()을 사용하여 데이터를 세로로 출력하기 전에 가로로 출력된 데이터부터 살펴보겠습니다.

 

 - 이제는 UNPIVOT()을 사용하여 가로로 출력된 데이터를 동물의 NAME을 기준으로 하여 세로로 출력하여 보겠습니다.

 

- UNPIVOT()을 사용하면 데이터가 가로로 출력되는 것을 확인할 수 있습니다.

- ANIMAL테이블에서 ANIMAL_ID ANIMAL_TYPE, INTAKE_CONDITION 컬럼이 가상컬럼2의 INFO로 적용되어 세로로 출력되었으며, 그에 맞게 VALUE로 지정한 가상컬럼1에 데이터가 출력되었습니다.