sql server 2005 中的列置换函数用法(pivot 字段)

行列置换(2000中的交叉表.2005中的处理方法.及相关合计字段列的处理.)

declare   @t   table (name  varchar ( 10 ),object  varchar ( 10 ),score  int )
insert   into   @t   select   ' a ' , ' EN ' , 89
union   all   select   ' a ' , ' CH ' , 78
union   all   select   ' a ' , ' HO ' , 99
union   all   select   ' b ' , ' EN ' , 34
union   all   select   ' b ' , ' CH ' , 88
union   all   select   ' b ' , ' HO ' , 66

select  ta. * ,tb. [ sum ]   from
(
    
select   *   from   @t
    pivot
        (
sum (score)
         
for  object  in  ( [ EN ] , [ CH ] , [ HO ] )
        )
    
as  pt
)ta 
left   join
(
    
select  name, [ sum ] = sum (score)
    
from   @t
    
group   by  name
)tb
on  ta.name = tb.name

/*
name       EN          CH          HO          sum
---------- ----------- ----------- ----------- -----------
a          89          78          99          266
b          34          88          66          188

(2 行受影响)
*/
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值