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

Sql的行列转换

时间:2018-09-10 13:34:37      阅读:157      评论:0      收藏:0      [点我收藏+]

标签:bsp   class   sum   物理   技术   sele   serve   rom   log   

创建表scores

技术分享图片

一、传统的行列转换

纵表转横表

我们要转成的横表是这样子的:

技术分享图片


pivot是sql server 2005 提供的运算符,所以只要数据库在05版本以上的都可以使用。主要用于行和列的转换。

 pivot纵表转横表

select
    t2.姓名,
    t2.数学,
    t2.物理,
    t2.语文
from Scores as t1
pivot (sum(分数) for 课程 in(数学,语文,物理)) as t2

pivot将原来表中 课程字段中的 数据行 数学,语文,物理 转换为列,并用sum取对应列的值。

unpivot 横表转纵表

select
     *
 from
 scores2
 unpivot (分数 for 课程 in (语文,数学,物理)) as t3

 unpivot 将 语文,数学,物理 列转为行,分数为新的一列存放对应的值。

Sql的行列转换

标签:bsp   class   sum   物理   技术   sele   serve   rom   log   

原文地址:https://www.cnblogs.com/johnblogs/p/9618511.html

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