欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

SQLServer之列数据转换为行数据

程序员文章站 2023-01-22 08:11:26
UNPIVOT特点 UNPIVOT运算符通过将列旋转到行来执行PIVOT的反向操作,UNPIVOT 并不完全是 PIVOT 的逆操作。 PIVOT 执行聚合,并将多个可能的行合并为输出中的一行。UNPIVOT 不重现原始表值表达式的结果,因为行已被合并。 另外,UNPIVOT 输入中的 NULL 值 ......

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

示例结果

SQLServer之列数据转换为行数据