在SQL Server 2000 中透視資料:詳細說明
SQL Server 2000 提供了一個稱為透視的強大功能,使用戶能夠將資料從基於行的格式到基於列的格式。這對於需要跨多列匯總資料或建立資料矩陣視圖的場景非常有用。
問題陳述:
在一個特定實例中,使用者有兩個表:
產品:
包含基本產品訊息,例如產品ID 和名稱。產品元資料:
使用 MetaKey 和 MetaValue 等欄位儲存產品元資料。SELECT P.ProductId, P.Name , MIN(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS A , MIN(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS B , MIN(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS C FROM Products AS P JOIN ProductMeta AS PM ON PM.ProductId = P.ProductId GROUP BY P.ProductId, P.Name
最佳解決方案:
MIN()聚合函數用於傳回每組ProductId和Name中每個MetaKey的最小值。
CASE表達式用於決定哪一列(A、B 或 C)根據 MetaKey 值進行填充。 GROUP BY 子句指定定義結果中的行的列set.注意:在這種情況下使用GROUP BY 子句對於確保行正確分組至關重要。不使用 GROUP BY 子句將導致交錯結果。此外,未包含在 GROUP BY 子句中的每一列都必須包裝在聚合函數中(在本例中為 MIN())。以上是如何在 SQL Server 2000 中透視資料以將基於行的資料轉換為基於列的格式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!