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

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

Mary-Kate Olsen
发布: 2024-12-30 15:39:18
原创
647 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板