在数据库中处理数据时,可能需要转置行,即翻转行和列。这对于数据分析、报告和其他目的非常有用。
如果您有一个 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中文网其他相关文章!