首頁 >資料庫 >mysql教程 >如何在沒有聚合函數的情況下執行 T-SQL PIVOT 操作?

如何在沒有聚合函數的情況下執行 T-SQL PIVOT 操作?

Mary-Kate Olsen
Mary-Kate Olsen原創
2025-01-20 09:51:09962瀏覽

How to Perform a T-SQL PIVOT Operation Without Aggregate Functions?

無聚合函數的 T-SQL PIVOT 操作

與通常需要聚合函數的 PIVOT 運算不同,也可以在無需聚合函數的情況下執行 PIVOT 轉換。這可能出現在需要資料重構而無需匯總的特定場景中。

考慮以下表格:

CustomerID DBColumnName Data
1 FirstName Joe
1 MiddleName S
1 LastName Smith
1 Date 12/12/2009
2 FirstName Sam
2 MiddleName S
2 LastName Freddrick
2 Date 1/12/2009
3 FirstName Jaime
3 MiddleName S
3 LastName Carol
3 Date 12/1/2009

目標是將此數據透視到以下結果:

CustomerID FirstName MiddleName LastName Date
1 Joe S Smith 12/12/2009
2 Sam S Freddrick 1/12/2009
3 Jaime S Carol 12/1/2009

要使用無需聚合函數的 PIVOT 來實現此目標,可以使用以下查詢:

<code class="language-sql">SELECT CustomerID,
       MIN(CASE DBColumnName WHEN 'FirstName' THEN Data END) AS FirstName,
       MIN(CASE DBColumnName WHEN 'MiddleName' THEN Data END) AS MiddleName,
       MIN(CASE DBColumnName WHEN 'LastName' THEN Data END) AS LastName,
       MIN(CASE DBColumnName WHEN 'Date' THEN Data END) AS Date
FROM table
GROUP BY CustomerId;</code>

此查詢在 PIVOT 操作中執行 case 語句,以針對給定的 CustomerID 選擇每個 DBColumnName 的最小值。由於每個 CustomerID 和 DBColumnName 組合只有一行數據,因此 MIN 函數傳回所需的值。

以上是如何在沒有聚合函數的情況下執行 T-SQL PIVOT 操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn