在 SQL Server 2000 中透视数据:详细说明
SQL Server 2000 提供了一个称为透视的强大功能,使用户能够将数据从基于行的格式到基于列的格式。这对于需要跨多列汇总数据或创建数据矩阵视图的场景非常有用。
问题陈述:
在一个特定实例中,用户有两个表:
用户需要一个对 MetaValue 列进行透视的结果集来自基于 MetaKey 列的产品元表,其中产品表中的 ProductId 和 Name 列作为行
最佳解决方案:
要实现此转换,您可以使用以下 SQL 查询:
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
说明:
注意:
在这种情况下使用 GROUP BY 子句对于确保行正确分组至关重要。不使用 GROUP BY 子句将导致交错结果。此外,未包含在 GROUP BY 子句中的每一列都必须包装在聚合函数中(在本例中为 MIN())。
以上是如何在 SQL Server 2000 中透视数据以将基于行的数据转换为基于列的格式?的详细内容。更多信息请关注PHP中文网其他相关文章!