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函數的實現可能有所不同,具體語法細節可能會有所差異。