본문 바로가기
CS/데이터베이스

[Oracle] COLUMN을 ROW로 출력 (PIVOT)

by 김크롱 2020. 9. 9.

COLUMN을 ROW로 출력 (PIVOT)

: ROW(행)를 COLUMN으로 출력

- SUM+DECODE 보다 간단함

- FROM절을 반드시 특정 컬럼만 선택해야함

 

 

SELECT *
    FROM (SELECT column1, column2, FROM tablename)
    PIVOT (SUM(column2) FOR column1 IN(100,200,300));

: column1, column1별 column2합계를 가로 출력

 - FROM절 : column1, column2 중에서

 - PIVOT절 : column1이 100,200,300 인 경우(COLUMN명), column2의 합계(COLUMN값=행)를 가로로 출력

 

 

SELECT *
    FROM(SELECT colum1, column2 FROM tablename)
    PIVOT(SUM(column2) FOR column1 IN('KOREA', 'USA', 'GERMANY'));

: '' 작은 따옴표까지 출력됨 -> 'KOREA'

: PIVOT절을 사용하기 위해서는 FROM절에 반드시 특정 컬럼만 선택해야함

 

 

SELECT *
    FROM(SELECT column1, column2 FROM tablename)
    PIVOT(SUM(solumn2) FOR column1 IN('KOREA' as "KOREA", 'USA' as "USA", 'GERMANY' as "GERMANY));

: ''작은 따옴표 처리 -> KOREA