SQL Server基础之行数据转换为列数据

2020-07-06 05:58:43易采站长站整理

for
[<column that contains the values that will become column headers>] in ( [first pivoted column], [second pivoted column],
... [last pivoted column])
) as <alias for the pivot table>
<optional order by clause>;

语法解析

<non-pivoted column>

非聚合列。

[first pivoted column]

第一列列名。

[second pivoted column]

第二列列名。

[last pivoted column]

最后一列列名。

<select query that produces the data>

数据子表。

<alias for the source query>

表别名。

<aggregation function>

聚合函数。

<column being aggregated>

聚合函数列,用于输出值列,最终输出中返回的列(称为分组列)将对其进行分组。

[<column that contains the values that will become column headers>]

转换列,此列返回的唯一值将成为最终结果集中的字段。

[first pivoted column], [second pivoted column], … [last pivoted column]

数据行中每一行行要转换的列名。

<optional order by clause>

排序规则。

示例


select b.Name,b.[android],b.[ios],b.[html5],b.[.net]from
(select Name,Project,Score from [test1].[dbo].[student])
as a
pivot
(
max(Score)
for Project in ([android],[ios],[html5],[.net])
)
as b
order by b.name desc

示例结果

转换前

转换后

注意事项

1、如果输出列名不能在表转换列中,则不会执行任何计算。

2、输出的所有列的列名的数据类型必须一致。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对软件开发网的支持。

您可能感兴趣的文章:SQL Server将一列的多行内容拼接成一行的实现方法SQLServer行转列实现思路记录Sql Server 2000 行转列的实现(横排)sqlserver2005 行列转换实现方法sqlserver下将数据库记录的列记录转换成行记录的方法sqlserver 行列互转实现小结SQLServer行列互转实现思路(聚合函数)SQL Server行转列的方法解析

相关文章 大家在看