首页 >数据库 >mysql教程 >如何使用条件聚合在 SQL Server 2000 中透视数据?

如何使用条件聚合在 SQL Server 2000 中透视数据?

DDD
DDD原创
2025-01-01 12:35:12152浏览

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