首頁 >資料庫 >mysql教程 >如何使用條件聚合在 SQL Server 2000 中透視資料?

如何使用條件聚合在 SQL Server 2000 中透視資料?

DDD
DDD原創
2025-01-01 12:35:12160瀏覽

How to Pivot Data in SQL Server 2000 Using Conditional Aggregation?

在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中文網其他相關文章!

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