SQL 内置函数(pivot) 纵转横

2014-11-24 19:01:33 · 作者: · 浏览: 40

1.创建表:


create table test(id int,name varchar(20),quarter int,profile int))


insert into test values(1,'a',1,1000);
insert into test values(1,'a',2,1000);
insert into test values(1,'a',3,1000);
insert into test values(1,'a',4,1000);
insert into test values(2,'a',1,1000);
insert into test values(2,'a',2,1000);
insert into test values(2,'a',3,1000);
insert into test values(2,'a',4,1000);




2. Pivot 用法


select id,name,[1] as '1th Season',[2] as '2th Season',[3] as '3th Season',[4] as '4th Season'
from test
pivot
(
sum(profile)
for quarter in ([1],[2],[3],[4])
)as pvt

select * from test






3.Unpivot


select * from test2
select id,name,quarters,profiles
from test2
unpivot
(
profiles
for quarters in ([Q1],[Q2],[Q3],[Q4])
)
as unpvt