SQLServer之列数据转换为行数据

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

示例结果

 

(0)
上一篇 2022年3月21日
下一篇 2022年3月21日

相关推荐