MSSQL
[MSSQL] PIVOT / UNPIVOT
평생업
2016. 8. 14. 21:40
PIVOT / UNPIVOT 연산자
PIVOT 연산자는 한 열에 포함된 여러 값을 출력하고, 이를 여러 열로 변환하여 테이블 반환 식을 회전하고 필요하면
집계까지 수행할 수 있다. 또한, UNPIVOT은 PIVIT의 반대되는 연산을 수행한다.
PIVOT의 원형은 다음과 같다
PIVOT ( 집계함수 (열)
FOR 새로운 열로 변경할 열이름
IN (열 목록) AS 피벗이름 )
1. 샘플 테이블을 만든다
CREATE TABLE pivotTest
( uName NCHAR(3) ,
season NCHAR(2) ,
amount INT ) ;
2. 테이블을 9건 입력한다.
INSERT INTO pivotTest VALUES
('김범수' , '겨울' , 10) , ('윤종신' , '여름' , 15) ,
('김범수' , '가을' , 25) , ('김범수' , '봄' , 3) ,
('김범수' , '봄' , 37) , ('윤종신' , '겨울' , 40) ,
('김범수' , '여름' , 14) , ('김범수' , '겨울' , 22) ,
('윤종신' , '여름' , 64) ;
SELECT * FROM pivotTest ;
3. PIVOT 연산자를 수행한다.
SELECT * FROM pivotTest
PIVOT ( SUM(amount)
FOR season
IN ([봄],[여름],[가을],[겨울])) AS resultPivot ;