首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

这种语句如何写?

2012-04-01 
这种语句怎么写??????????????????在MSSQLServer2000数据库中有如下数据表姓名学科成绩——————————————————

这种语句怎么写??????????????????
在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 @sql=@sql+ ',max(case 学科 when ' ' '+学科+ ' ' ' then 成绩 end) as [ '+学科+ '] '
from tablename
group by 学科

exec( 'select 姓名 '+@sql+ ' from tablename group by 姓名 ')

热点排行