当前位置: 代码迷 >> SQL >> SQL Server 行与列其间转换
  详细解决方案

SQL Server 行与列其间转换

热度:83   发布时间:2016-05-05 11:23:41.0
SQL Server 行与列之间转换

??? SQL Server把行转列:

如以下表:<!--StartFragment -->

?
当表中只有少量数据时,可以采用静态SQL语句
如:
select stuName ,
max(case? Course when '语文' then score else 0 end) as 语文,
max(case? Course when '数学' then score else 0 end) as 数学,
max(case? Course when '英语' then score else 0 end) as 英语,
max(case? Course when '物理' then score else 0 end) as 物理,
sum(score) as '总分'
from Student group by stuName
?
当数据表中有大量数据,就必须采用动态SQL语句了
如下操作:
declare @name varchar(8000) --声明变量
set @name = 'select stuName '
select @name = @name + ' , sum(case Course when ''' + Course + ''' then score else 0 end) [' + Course + ']'
from (select distinct Course from Student) as a
set @name = @name + ' from Student group by stuName'
exec(@name)
?
?
<!--StartFragment -->
?
?
?
?
?

来自:http://www.verydemo.com/demo_c155_i19061.html

  相关解决方案