码迷,mamicode.com
首页 > 数据库 > 详细

sqlserver 行转列 语文,数学,物理,化学

时间:2014-07-18 16:17:41      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   数据   for   re   

数据库查询行转列

1.原数据库值

stdname    stdsubject    result
张三          语文        80
张三          数学        90
张三          物理        85
李四          语文        85
李四          数学        92
李四          物理        82
李四          化学        82
李四          化学        82

2.要得到如下表

stdname    语文    数学    物理    化学
李四        85     92      82    164
张三        80     90      85    NULL

3.实现方法

--第一种 调用行转列函数
select * from (select stdname,stdsubject,result from test1 ) as a 
pivot(sum(result) for stdsubject in (语文,数学,物理,化学)) t

--第二种 自己写
select stdname,
语文 = (select sum(result) from test1 where stdname =a.stdname and stdsubject = 语文 )
,数学 = (select sum(result) from test1 where stdname =a.stdname and stdsubject = 数学 )
,物理 = (select sum(result) from test1 where stdname =a.stdname and stdsubject = 物理 )
,化学 = (select sum(result) from test1 where stdname =a.stdname and stdsubject = 化学 )
from test1 as a 
group by stdname

sqlserver 行转列 语文,数学,物理,化学,布布扣,bubuko.com

sqlserver 行转列 语文,数学,物理,化学

标签:style   blog   color   数据   for   re   

原文地址:http://www.cnblogs.com/wenming205/p/3851884.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!