首頁 >資料庫 >mysql教程 >如何在 DB2 中將行轉置為列?

如何在 DB2 中將行轉置為列?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-30 15:39:18638瀏覽

How to Transpose Rows into Columns in DB2?

在 DB2 中將行轉置為列

在資料庫中處理資料時,可能需要轉置行,即翻轉行和列。這對於數據分析、報告和其他目的非常有用。

如果您有一個 DB2 表,其中的行需要轉置為列,可以使用多種方法。一種方法是使用相關子查詢,這對於小型資料集非常有效。

SELECT 
  A.ItemID,
  MAX(CASE WHEN A.Item = 'Meeting'  THEN Value END) AS Meeting,
  MAX(CASE WHEN A.Item = 'Advise'   THEN Value END) AS Advise,
  MAX(CASE WHEN A.Item = 'NoAdvise' THEN Value END) AS NoAdvise
FROM A
GROUP BY A.ItemID

此查詢使用相關子查詢來找出每行中每個項目的最大值。 MAX() 函數用於聚合值,CASE 語句用於決定將值指派給哪一列。

將行轉置為列的另一種方法是使用聚合和透視的組合功能。這種方法對於大型資料集來說更有效,因為它使用單一 SQL 語句來執行轉置。

SELECT ItemID,
       MAX(CASE WHEN Item = 'Meeting'  THEN Value END) AS Meeting,
       MAX(CASE WHEN Item = 'Advise'   THEN Value END) AS Advise,
       MAX(CASE WHEN Item = 'NoAdvise' THEN Value END) AS NoAdvise
FROM (
    SELECT ItemID, Item, Value
    FROM TableName
) AS t
GROUP BY ItemID
PIVOT (MAX(Value) FOR Item IN ('Meeting', 'Advise', 'NoAdvise'))

此查詢使用 PIVOT() 函數來轉置資料。 PIVOT() 函數採用兩個參數:要旋轉的列(在本例中為 Item),以及要包含在新列中的值清單(在本例中為 Meeting、Advise 和 NoAdvise)。

以上是如何在 DB2 中將行轉置為列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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