首頁 > 資料庫 > mysql教程 > 如何使用SQL Server的PIVOT函數將行轉換為列?

如何使用SQL Server的PIVOT函數將行轉換為列?

Patricia Arquette
發布: 2025-01-25 12:17:14
原創
821 人瀏覽過

How Can I Use SQL Server's PIVOT Function to Transform Rows into Columns?

掌握數據轉換的SQL Server的樞軸函數

> SQL Server的樞軸函數提供了一種重組數據的強大方法,將行轉換為列以改進分析和報告。當您需要以更具用戶友好的表格格式顯示數據時,這一點尤其有用。

>

想像一個臨時桌子持有銷售數字,並提供商店編號,週數和銷售量的列。要在垂直列出和水平列出的商店中顯示此數據

1。動態識別週數

由於週數是可變的,因此我們首先需要確定數據集中存在的唯一周數。 這可以使用以下方式實現:

SELECT DISTINCT Week FROM yt;
登入後複製

2。動態SQL查詢結構 接下來,我們構建動態SQL查詢。這涉及創建一個包含樞軸操作的列名稱的字符串。 以下代碼生成此字符串:

DECLARE @cols AS NVARCHAR(MAX),
    @query AS NVARCHAR(MAX);

SELECT @cols = STUFF((SELECT ',' + QUOTENAME(Week) 
                    FROM yt
                    GROUP BY Week
                    ORDER BY Week
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'');
登入後複製
3。構建樞軸查詢

現在,我們構建了樞軸查詢本身,並結合了動態生成的列字符串:

SET @query = 'SELECT store,' + @cols + ' FROM 
             (
                SELECT store, week, xCount
                FROM yt
            ) x
            PIVOT 
            (
                SUM(xCount)
                FOR week IN (' + @cols + ')
            ) p;';
登入後複製
4。執行樞軸查詢

> 最後,使用以下方式執行動態樞軸查詢

結果:
EXECUTE(@query);
登入後複製

>輸出將是一張表,顯示第一列中的存儲號碼,每週數字作為列標題。 相應的銷售量將填充表單元,並有效地總結原始數據。 通過利用SQL Server的Pivot函數,您可以有效地將面向行的數據轉換為更容易解釋和分析的列格式,簡化數據報告和分析任務。

以上是如何使用SQL Server的PIVOT函數將行轉換為列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板