首页 > 数据库 > mysql教程 > 如何使用 PIVOT(隐式)在 DB2 中将行转置为列?

如何使用 PIVOT(隐式)在 DB2 中将行转置为列?

Mary-Kate Olsen
发布: 2024-12-30 13:27:16
原创
610 人浏览过

How to Transpose Rows into Columns in DB2 Using PIVOT (Implicit)?

在 DB2 中通过透视转置数据结构

该任务需要将 DB2 表中的行转置为列,将数据从以下结构转换:

ItemID    Item    Value
---------------------
1     Meeting     Now
1     Advise      Yes
1     NoAdvise    No
2     Meeting     Never
2     Advise      No
2     NoAdvise    Null
2     Combine    Yes
登录后复制

进入想要的结构:

ItemID    Meeting  Advise   NoAdvise 
---------------------------------------
1         Now      Yes       No
2         Never    No        Null
登录后复制

要实现此转换,您可以使用采用 PIVOT 运算符的 SQL 查询,该查询可以根据指定的分类字段将行转置为列。下面是一个可以在 DB2 LUW 中使用的查询示例:

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
登录后复制

在此查询中,没有显式使用 PIVOT 运算符,而是通过在 MAX 内使用 CASE 语句来隐式实现() 聚合函数。 CASE 语句充当对行进行分类并返回每个类别的最大值的方法。然后,MAX() 聚合函数确保返回每个类别的最大值。

请注意,根据要求,“Combine”列不包含在转置结果中。生成的数据将根据需要转置到列中。

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

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