MAIN:
主要用于类似于数据透视。
举例说明比较清晰:
-- 创建表
drop table seorder
create table seorder(
orderYear datetime,
category varchar(10),
salesAmount money
)
-- 传值
insert into seorder values('2004-01-01','ball','45000')
insert into seorder values('2004-01-01','bike','22500')
insert into seorder values('2005-01-01','shoes','32000')
insert into seorder values('2005-01-01','ball','38000')
insert into seorder values('2006-01-01','bike','12000')
insert into seorder values('2006-01-01','clothing','12450')
insert into seorder values('2007-01-01','ball','32456')
insert into seorder values('2007-01-01','ball','13546')
insert into seorder values('2007-01-01','clothing','78546')
insert into seorder values('2007-01-01','shoes','12589')
结果为:
用法如下:
select category,[2004-01-01],[2005-01-01],[2006-01-01],[2007-01-01]
from seorder as A
pivot (
-- 这里执行聚合sum操作
sum(salesAmount) for orderYear
in ([2004-01-01],[2005-01-01],[2006-01-01],[2007-01-01])
-- in后面要与前面的select后面的时间保持一致性
) as B
结果:
pivot操作符的结果不是存储数据的最有方式,但是是需要的显示方式。它的返回结果是一个简单的,清晰的矩阵形式。