首頁 > 資料庫 > mysql教程 > 如何使用 JOIN 和聚合函數在 SQL Server 2000 中透視產品元資料?

如何使用 JOIN 和聚合函數在 SQL Server 2000 中透視產品元資料?

Patricia Arquette
發布: 2025-01-02 18:29:39
原創
406 人瀏覽過

How to Pivot Product Metadata in SQL Server 2000 using a JOIN and Aggregate Function?

使用 SQL Server 2000進行透視轉換

問題:

您的資料庫包含兩個表,產品和產品元,具有以下內容結構:

Products:
- ProductId
- Name

Product Meta:
- ProductId
- MetaKey
- MetaValue
登入後複製

您希望將此資料轉換為基於MetaKey 資料列旋轉MetaValue 資料列的結果集。期望的結果集是:

ProductId | Name | A | B | C
登入後複製

解決方案:

雖然前面建議的解決方案可能不是最佳的,但它們仍然強調了聚合函數或子查詢的使用確保有效分組。這是另一種方法:

SELECT
  P.ProductId,
  P.Name,
  MAX(CASE WHEN PM.MetaKey = 'A' THEN PM.MetaValue END) AS A,
  MAX(CASE WHEN PM.MetaKey = 'B' THEN PM.MetaValue END) AS B,
  MAX(CASE WHEN PM.MetaKey = 'C' THEN PM.MetaValue END) AS C
FROM Products AS P
LEFT JOIN ProductMeta AS PM
  ON PM.ProductId = P.ProductId
GROUP BY
  P.ProductId,
  P.Name;
登入後複製

此查詢連接 Products 和 Product Meta 表,按 ProductId 和 Name 將結果分組。聚合函數 MAX() 用於提取每個 MetaKey 的最大 MetaValue。這可確保結果集中僅包含每個鍵的最新或最近的 MetaValue。

以上是如何使用 JOIN 和聚合函數在 SQL Server 2000 中透視產品元資料?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板