SQLServer之列数据转换为行数据
UNPIVOT特点
UNPIVOT运算符通过将列旋转到行来执行PIVOT的反向操作,UNPIVOT
并不完全是 PIVOT
的逆操作。 PIVOT
执行聚合,并将多个可能的行合并为输出中的一行。UNPIVOT
不重现原始表值表达式的结果,因为行已被合并。 另外,UNPIVOT
输入中的 NULL 值也在输出中消失了。如果值消失,表明在执行 PIVOT
操作前,输入中可能就已存在原始 NULL 值。
语法
1
2
3
4
5
6
|
select 输出列名,...,输出列名,输出值列名称 from ( select 输出列名,...,转换列列名,... from 数据库名.架构名.表名) as 别名 unpivot( 输出值列名称 for 输出列名 in (转换列列名,...) ) as 别名 |
示例
1
2
3
4
5
6
|
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 |
原文地址https://www.cnblogs.com/vuenote/archive/2019/08/11/11336793.html