首頁 > 資料庫 > mysql教程 > 如何在T-SQL中實作表格資料的動態透視?

如何在T-SQL中實作表格資料的動態透視?

Mary-Kate Olsen
發布: 2025-01-14 20:20:45
原創
868 人瀏覽過

How to Achieve Dynamic Pivoting of Tabular Data in T-SQL?

T-SQL 中的動態透視

將表格資料​​轉換為更簡潔的格式對於資料分析和報表產生至關重要。一種常用的技術是透視,它涉及將行轉換為列。在本例中,我們的目標是從類似以下結構的表格中透視資料:

ItemID ColumnName Value
1 name Peter
1 phone 12345678
1 email [email protected]
2 name John
2 phone 87654321
2 email [email protected]
3 name Sarah
3 phone 55667788
3 email [email protected]

轉換為更容易使用者理解的結構:

ItemID name phone email
1 Peter 12345678 [email protected]
2 John 87654321 [email protected]
3 Sarah 55667788 [email protected]

要在 T-SQL 中使用動態透視實現此操作,請按照以下步驟操作:

  1. 建立動態列清單:

     DECLARE @cols NVARCHAR(2000)
     SELECT  @cols = STUFF(( SELECT DISTINCT TOP 100 PERCENT
                                      '],[' + t.ColumnName
                              FROM    #Table AS t
                              FOR XML PATH('')
                            ), 1, 2, '') + ']' 
    登入後複製
  2. 建立動態查詢:

     DECLARE @query NVARCHAR(4000) 
     SET @query = N'SELECT ID,'+ @cols +' FROM 
     (SELECT t1.ID,t1.ColumnName , t1.Value FROM #Table AS t1) p 
     PIVOT (MAX([Value]) FOR ColumnName IN ( '+ @cols +' )) 
     AS pvt;' 
    登入後複製
  3. 執行查詢:

     EXECUTE(@query)
    登入後複製

產生的查詢將動態地透視數據,創建一個更緊湊且易於閱讀的表結構。

這種方法為資料透視提供了一種靈活的機制,尤其是在列名是動態的或可能發生變化的情況下。它允許高效且自動化的數據轉換,使其成為各種數據分析和報表應用程式的強大工具。

以上是如何在T-SQL中實作表格資料的動態透視?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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