主要应用case语句来解决行转列的问题 行转列问题主要分为两类 1)简单的行转列问题: 示例表: id sid course result 1 2005001 语文 80.0 执行 select sid,语文=isnull(sum(case course when 语文 then result end),0), 得出结果 sid 语文 数学 英语 2005001 80.0 90.0 80.0 2)较为复杂的行转列 表1:course id name 1 语文 id sid course result 1 2005001 语文 80.0 declare @sql varchar(8000) 得出结果 sid 语文 数学 英语 2005001 80.0 90.0 80.0 http://blog.csdn.net/tthxqttzln/archive/2007/02/02/1500825.aspx
2 2005001 数学 90.0
3 2005001 英语 80.0
4 2005002 语文 56.0
5 2005002 数学 69.0
6 2005002 英语 89.0
数学=isnull(sum(case course when 数学 then result end),0),
英语=isnull(sum(case course when 英语 then result end),0)
from result
group by sid
order by sid
2005002 56.0 69.0 89.0
2 数学
3 英语
表2:result
2 2005001 数学 90.0
3 2005001 英语 80.0
4 2005002 语文 56.0
5 2005002 数学 69.0
6 2005002 英语 89.0
set @sql=select sid
select @sql=@sql+,+course.name+=isnull(sum(case course when +course.name+ then result end),0)
from course order by id
set @sql=@sql+ from result group by sid order by sid
print @sql
exec(@sql)
2005002 56.0 69.0 89.0
sql server行转列问题终极解决_数据库技巧
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » sql server行转列问题终极解决_数据库技巧
相关推荐
-      sql语句中的判断功能的使用方法
-      sql语句中的判断功能的使用方法
-      SQL语言中去掉小数点有效数字后面的所有0
-      ASP连接各种数据库的代码
-      在sql语句中实现md5功能
-      给access数据库减肥
-      asp连接access数据库代码(2)
-      ASP连接access数据库代码