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
吉公网安备 22020202000301号