http://blog.sina.com.cn/s/blog_3d7bed650100c4ia.html

 

在企业应用中,经常会开发报表系统,而在报表中又经常用到行列转换,这里有一个经典的应用实例:
原表:  

           姓名    科目   成绩
           张三     语文    80
           张三     数学    90
           张三     物理    85
           李四     语文    85
           李四     物理    82
           李四     英语    90
           李四     政治    70
           王五     英语    90

转换后的表: 

          姓名     数学    物理     英语    语文    政治 
           李四              82        90      85       70
           王五                      90              0
           张三        90      85              80        0

实例:
Declare @sql varchar(8000)
Set @sql = 'Select Name as 姓名'
Select @sql = @sql + ',sum(case Subject when '''+Subject+''' then Result else 0 end) ['+Subject+']'
from (select distinct Subject from cj) as cj  --把所有唯一的科目的名称都列举出来
Select @sql = @sql+' from cj group by name'
Exec (@sql)

相关文章:

  • 2021-12-28
  • 2021-05-17
  • 2022-12-23
  • 2021-05-26
  • 2022-12-23
  • 2021-07-16
  • 2022-01-15
  • 2021-10-23
猜你喜欢
  • 2021-06-20
  • 2021-11-17
  • 2021-08-20
  • 2021-08-22
相关资源
相似解决方案