经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MS SQL Server » 查看文章
SQLServer之列数据转换为行数据
来源:cnblogs  作者:小子pk了  时间:2019/8/12 9:02:47  对本文有异议

UNPIVOT特点

UNPIVOT运算符通过将列旋转到行来执行PIVOT的反向操作,UNPIVOT 并不完全是 PIVOT 的逆操作。 PIVOT 执行聚合,并将多个可能的行合并为输出中的一行。UNPIVOT 不重现原始表值表达式的结果,因为行已被合并。 另外,UNPIVOT 输入中的 NULL 值也在输出中消失了。如果值消失,表明在执行 PIVOT 操作前,输入中可能就已存在原始 NULL 值

语法

select 输出列名,...,输出列名,输出值列名称
from (select 输出列名,...,转换列列名,... from 数据库名.架构名.表名) as 别名
unpivot(
输出值列名称 for 输出列名 in
(转换列列名,...)
) as 别名

示例

select unpriots.Name,unpriots.Course,unpriots.Score
from (select Name,Android,[.NET],IOS,HTML5 from test1.dbo.student2) as a
unpivot(
Score for Course in
(Android,[.NET],IOS,HTML5)
) as unpriots

示例结果

 

原文链接:http://www.cnblogs.com/vuenote/p/11336793.html