SQL的PIVOT函数用于将行数据转换为列数据。具体来说,它可以将一个包含多列数据的查询结果,通过指定一个或多个列进行聚合,并将这些列的值作为新列的名称,然后将其他列的值填充到新列中。
PIVOT函数通常与聚合函数(如SUM、COUNT、MAX等)一起使用,以便对数据进行汇总。它适用于需要将某些行数据作为列进行展示的情况,例如将销售数据按照不同产品进行汇总,并将每个产品的销售额作为列显示。
PIVOT函数的语法如下:
SELECT <non-pivoted column>,
[first pivoted column] AS <column name>,
[second pivoted column] AS <column name>,
...
FROM <table>
PIVOT (
<aggregation function>(<column to aggregate>)
FOR <column to pivot>
IN ([first pivoted value], [second pivoted value], ...)
) AS <alias>
其中,<non-pivoted column>
是不需要进行聚合的列,[first pivoted column]
和[second pivoted column]
是指定的列值作为新列的名称。<table>
是要查询的表,<column to aggregate>
是要进行聚合的列,<column to pivot>
是要作为新列的名称的列,[first pivoted value]
和[second pivoted value]
是具体的列值。
需要注意的是,不同数据库系统对PIVOT函数的实现可能有所不同,具体语法细节可能会有所差异。