破碎了无痕

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
初始化数据

 

select * into #temp from 
(
select Name = 'aaa', Course = 'English', Score = 95 union all
select Name = 'aaa', Course = 'Chinese', Score = 82 union all
select Name = 'aaa', Course = 'History', Score = 77 union all
select Name = 'bbb', Course = 'History', Score = 92 union all
select Name = 'bbb', Course = 'English', Score = 66 union all
select Name = 'bbb', Course = 'Chinese', Score = 100
as tb




方法一,使用聚合函数,SUM,MAX,MIN等都一样
-- Line to Column

select Name, 
    Max(case when Course = 'English' then Score endas 'English',
    Max(case when Course = 'Chinese' then Score endas 'Chinese',
    Max(case when Course = 'History' then Score endas 'History'
    from #temp
    group by Name



方法二, 使用Pivot翻转
-- Use Pivot

select 
    *
from
    #temp
pivot
(
    max(Score)
    for Course
    in ([English][Chinese][History])
) b

 

Refer to 

posted on 2012-05-04 17:05  破碎了无痕  阅读(172)  评论(0编辑  收藏  举报