首頁 > 資料庫 > mysql教程 > 如何使用動態列動態透視 SQL Server 中的資料?

如何使用動態列動態透視 SQL Server 中的資料?

DDD
發布: 2024-12-31 11:47:10
原創
183 人瀏覽過

How to Dynamically Pivot Data in SQL Server with Dynamic Columns?

動態列的動態SQL Server PIVOT

您有一個包含多個欄位(「Name1」和「Name2」)和一個值的資料集列(“值”)。您希望將此資料轉換為透視格式,其中「Name1」成為列標題,值由「Name2」聚合。

使用動態SQL 的解決方案(SQL Server 2005 或更高版本)

由於SQL Server 2005 允許動態SQL,因此可以透過動態組裝PIVOT 查詢來解決這個問題。程式碼如下:

DECLARE @cols VARCHAR(1000)
DECLARE @sqlquery VARCHAR(2000)

SELECT  @cols = STUFF(( SELECT distinct  ',' + QuoteName([Name1])
                        FROM myTable FOR XML PATH('') ), 1, 1, '') 


SET @sqlquery = 'SELECT * FROM
      (SELECT Name2, Name1, Value
       FROM myTable ) base
       PIVOT (Sum(Value) FOR [Name1]
       IN (' + @cols + ')) AS finalpivot'

EXECUTE ( @sqlquery )
登入後複製

無論您有多少個唯一的「Name1」值,此查詢都會動態執行。它將收集的「Name1」值指派給變數@cols,然後使用該變數動態建構@sqlquery 變數中的PIVOT 子句。然後執行最終查詢,產生所需的輸出。

其他資源:

  • [在T-SQL 中透視資料](https://www .mssqltips.com/sqlservertip/1355/pivot- data-in-tsql/)
  • [我如何透過使用SQL Server連接到單一表來建立摘要? ](https://stackoverflow.com/questions/260660/how-do-i-build-a-summary-by-joining-to-a-single- table-with-sql-server)
  • [動態PIVOT與動態欄位](https://stackoverflow.com/questions/8248059/pivot-with-dynamic-columns-in-sql-server-2005)

以上是如何使用動態列動態透視 SQL Server 中的資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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