--如果课程名只有语文,数学,用:select 学号
,语文成绩=max(case 课程名 when '''语文''' then 成绩 else 0 end)
,数学成绩=max(case 课程名 when '''数学''' then 成绩 else 0 end)
from 表 group by 学号.
,语文成绩=max(case 课程名 when '''语文''' then 成绩 else 0 end)
,数学成绩=max(case 课程名 when '''数学''' then 成绩 else 0 end)
from 表 group by 学号.
解决方案 »
- extists和表联合查询的效率
- 在不同的数据库之间如何insert导出
- 请问如何在一个存储过程中访问另一个数据库的存储过程,并将结果集存储在一张表中
- sql分组查询 求解
- 请问:Delphi的ADOConnection连接SQL Server时出现错误枚举服务器提示。
- : 我想把Table的一个字段的属性定义为另一个Table(表结构不同)的内容,大家给点指导好吗?
- 如何删除sql server7.0的日志?
- 请教一个问题:同一数据库服务器上的不同数据库之间的表(表之间逻辑上有联系的)如何建立联系???急啊,在线等待!!!
- 再高分求一个解决办法,一个简单的数据类型问题!!!解决问题马上给分!!!UP有分!!
- 有关数据更改问题?急急!!!!!!!
- 从一个表中删除在另一个表存在地记录?
- 大力,怎么样写死锁检测,检测到死锁后,该进程优先牺牲掉
select 学号
,语文成绩=max(case 课程名 when '''语文''' then 成绩 else 0 end)
,数学成绩=max(case 课程名 when '''数学''' then 成绩 else 0 end)
from 表 group by 学号
select 学号
,语文成绩=max(case 课程名 when '语文' then 成绩 else 0 end)
,数学成绩=max(case 课程名 when '数学' then 成绩 else 0 end)
from 表 group by 学号
--如果课程名是动态的,不确实的,就用:declare @s varchar(8000)
set @s=''
select @s=@s+',['+课程名+']=case 课程名 when '''+课程名+''' then 成绩 else 0 end)'
from(select distinct 课程名 from 表) a
exec('select 学号'+@s+'from 表 group by 学号')