在資料庫中處理資料時,可能需要轉置行,即翻轉行和列。這對於數據分析、報告和其他目的非常有用。
如果您有一個 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中文網其他相關文章!