在SQL Server 2000 中透視資料
透視資料是指將資料集從垂直的、面向列的格式轉換為面向列的格式的過程。水平的、面向行的格式。換句話說,它允許您旋轉表中的數據,使列變成行,反之亦然。
考慮以下兩個表格:
產品
ProductId | Name |
---|---|
1 | Product A |
2 | Product B |
產品Meta
ProductId | MetaKey | MetaValue |
---|---|---|
1 | A | Value A for Product A |
1 | B | Value B for Product A |
1 | C | Value C for Product A |
2 | A | Value A for Product B |
2 | B | Value B for Product B |
2 | C | Value C for Product B |
您想要取得結果集,結果集將產品名稱顯示為行,元鍵顯示為列,每個儲存格中都有對應的元值:
ProductName | Meta A | Meta B | Meta C |
---|---|---|---|
Product A | Value A for Product A | Value B for Product A | Value C for Product A |
Product B | Value A for Product B | Value B for Product B | Value C for Product B |
要實現此樞軸,您可以在SELECT 中結合使用條件聚合和CASE 語句語句:
SELECT P.ProductId, P.Name, MIN(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS MetaA, MIN(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS MetaB, MIN(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS MetaC FROM Products AS P INNER JOIN ProductMeta AS PM ON PM.ProductId = P.ProductId GROUP BY P.ProductId, P.Name;
此查詢將按產品ID 和名稱正確對行進行分組,並檢索每個鍵所需的元值。
以上是如何使用條件聚合在 SQL Server 2000 中透視資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!