文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>mssql case 行转列

mssql case 行转列

时间:2010-10-29  来源:小肖程序

1)简单的行转列问题:

示例表:

     id sid course result

            1 2005001 语文 80.0

            2 2005001 数学 90.0

    3 2005001 英语 80.0

    4 2005002 语文 56.0

    5 2005002 数学 69.0

     6 2005002 英语 89.0

执行 select sid,语文=isnull(sum(case course when '语文' then result end),0)

                   , 数学=isnull(sum(case course when '数学' then result end),0)

                  , 英语=isnull(sum(case course when '英语' then result end),0)

from result group by sid order by sid

2)较为复杂的行转列

表1:

course:

id name

1 语文

2 数学

3 英语

表2:

result

id sid course result

1 2005001 语文 80.0

2 2005001 数学 90.0

3 2005001 英语 80.0

4 2005002 语文 56.0

5 2005002 数学 69.0 6

2005002 英语 89.0

declare @sql varchar(8000) set @sql='select sid'

select @sql=@sql+','+course.name+'=isnull(sum(case course when '''+course.name+''' then result end),0)'

from course order by id

set @sql=@sql+' from result group by sid order by sid' print @sql

exec(@sql) 得出结果

sid 语文 数学 英语

2005001 80.0 90.0 80.0

2005002 56.0 69.0 89.0

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载