首页 >数据库 >mysql教程 >如何在 DB2 中将行转置为列?

如何在 DB2 中将行转置为列?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-30 15:39:18656浏览

How to Transpose Rows into Columns in DB2?

在 DB2 中将行转置为列

在数据库中处理数据时,可能需要转置行,即翻转行和列。这对于数据分析、报告和其他目的非常有用。

如果您有一个 DB2 表,其中的行需要转置为列,可以使用多种方法。一种方法是使用相关子查询,这对于小型数据集非常有效。

SELECT 
  A.ItemID,
  MAX(CASE WHEN A.Item = 'Meeting'  THEN Value END) AS Meeting,
  MAX(CASE WHEN A.Item = 'Advise'   THEN Value END) AS Advise,
  MAX(CASE WHEN A.Item = 'NoAdvise' THEN Value END) AS NoAdvise
FROM A
GROUP BY A.ItemID

此查询使用相关子查询来查找每行中每个项目的最大值。 MAX() 函数用于聚合值,CASE 语句用于确定将值分配到哪一列。

将行转置为列的另一种方法是使用聚合和透视的组合功能。这种方法对于大型数据集来说更有效,因为它使用单个 SQL 语句来执行转置。

SELECT ItemID,
       MAX(CASE WHEN Item = 'Meeting'  THEN Value END) AS Meeting,
       MAX(CASE WHEN Item = 'Advise'   THEN Value END) AS Advise,
       MAX(CASE WHEN Item = 'NoAdvise' THEN Value END) AS NoAdvise
FROM (
    SELECT ItemID, Item, Value
    FROM TableName
) AS t
GROUP BY ItemID
PIVOT (MAX(Value) FOR Item IN ('Meeting', 'Advise', 'NoAdvise'))

此查询使用 PIVOT() 函数来转置数据。 PIVOT() 函数采用两个参数:要旋转的列(在本例中为 Item),以及要包含在新列中的值列表(在本例中为 Meeting、Advise 和 NoAdvise)。

以上是如何在 DB2 中将行转置为列?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn