首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

怎么将表中的数据从纵向显示转换成横向显示?

2012-02-04 
如何将表中的数据从纵向显示转换成横向显示???假设有张学生成绩表(CJ)如下[姓名][学科][成绩]张三语文80张

如何将表中的数据从纵向显示转换成横向显示???
假设有张学生成绩表(CJ)如下  
[姓名]   [学科]   [成绩]  
张三   语文   80  
张三   数学   90  
张三   物理   85  
李四   语文   85  
李四   数学   92  
李四   物理   82  
王五   数学   60  

想变成  
[姓名]   [语文]   [数学]   [物理]  
张三   80   90   85  
李四   85   92   82  
王五   null   60   null  

请问用sql语句如何实现上述的显示???sql   server2000
谢谢各位老大啦,小弟我想了一整天都还在发闷!

[解决办法]
http://community.csdn.net/Expert/topic/5335/5335541.xml?temp=.4141199
[解决办法]
select 姓名 ,SUM(case 学科 when '语文 ' then 成绩 else 0 end) as 语文,SUM(case 学科 when '数学 ' then 成绩 else 0 end) as 数学,SUM(case 学科 when '物理 ' then 成绩 else 0 end) as 物理from cj group by 姓名
[解决办法]
用SQL语句实现,将行列转换。
http://www.mysdn.cn/shujukukaifa/MS-SQL_Server/20061111/66857.html
[解决办法]
declare @sql varchar(4000)
set @sql = 'select Name as ' + '姓名 '
select @sql = @sql + ' , sum(case Subject when ' ' '+Subject+ ' ' ' then Result end) [ '+Subject+ '] '
from (select distinct Subject from rowtocol) as a
set @sql = @sql + ' from rowtocol group by name '
exec(@sql)

热点排行