在 DB2 中透過透視轉置資料結構
該任務需要將 DB2表中的行轉置為列,將資料從以下結構轉換:
ItemID Item Value --------------------- 1 Meeting Now 1 Advise Yes 1 NoAdvise No 2 Meeting Never 2 Advise No 2 NoAdvise Null 2 Combine Yes
進入想要的結構:
ItemID Meeting Advise NoAdvise --------------------------------------- 1 Now Yes No 2 Never No Null
要實現此轉換,您可以使用採用PIVOT運算符的SQL 查詢,該查詢可以根據指定的分類欄位將行轉置為列。以下是一個可以在DB2 LUW 中使用的查詢範例:
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
在此查詢中,沒有明確使用PIVOT 運算符,而是透過在MAX 內使用CASE 語句來隱式實作()聚合函數。 CASE 語句充當對行進行分類並傳回每個類別的最大值的方法。然後,MAX() 聚合函數確保傳回每個類別的最大值。
請注意,根據要求,「Combine」列不包含在轉置結果中。產生的數據將根據需要轉置到列中。
以上是如何使用 PIVOT(隱式)在 DB2 中將行轉置為列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!