当前位置: 代码迷 >> Sql Server >> 这种语句如何写?
  详细解决方案

这种语句如何写?

热度:64   发布时间:2016-04-27 16:18:11.0
这种语句怎么写??????????????????
在MS   SQL   Server2000数据库中有如下数据表
      姓名                 学科                       成绩
——————————————————
张三 语文 85
张三 英语 90
张三 数学                     95
李四 语文 79
李四 英语 87
李四 数学 90
王五 语文 80
王五 英语 85
王五 数学 70

请何得到以下格式的查询结果
姓名               语文             英语             数学
———————————————————
张三               85                 90                   95
李四               79                 87                   90
王五               80                 85                   70


------解决方案--------------------
如果学科固定

select 姓名,
max(case 学科 when '语文 ' then 成绩 end) as 语文,
max(case 学科 when '英语 ' then 成绩 end) as 英语,
max(case 学科 when '数学 ' then 成绩 end) as 数学
from tablename
group by 姓名

------解决方案--------------------
如果不固定

declare @sql varchar(8000)
set @sql= ' '
select @[email protected]+ ',max(case 学科 when ' ' '+学科+ ' ' ' then 成绩 end) as [ '+学科+ '] '
from tablename
group by 学科

exec( 'select 姓名 '[email protected]+ ' from tablename group by 姓名 ')

  相关解决方案