跨越查询结果而不是堆叠重复值

Straddle Query Results Instead of Stacking Duplicate Values

为简单起见,我的查询字段是:ORDER ID、ORDER AMOUNT 和 ORDER TEXT。

我的问题是我们公司通常有多个 'ORDER TEXT' 字段,这使我的查询 return 成为第二条记录(堆叠),其中包含所有重复数据(ORDER ID、ORDER AMOUNT),除了另一个 'ORDER TEXT',这是不同的文本。

是否可以将第二个 'ORDER TEXT' 字段放在第一个 'ORDER TEXT' 字段旁边(跨接)或者甚至将两者连接成 DB2 中的一个长 'ORDER TEXT' 字符串?

假设您无法创建额外的表或以任何方式操作数据库。一如既往,非常感谢您的帮助!

尝试像这样使用聚合函数 LISTAGG :

SELECT ORDER_ID, ORDER_AMOUNT,
     LISTAGG(ORDER_TEXT, ', ') WITHIN GROUP(ORDER BY ORDER_TEXT)
     AS orders
  FROM PS_PO_HDR
  GROUP BY ORDER_ID, ORDER_AMOUNT

只需将 table 名称替换为您正在使用的名称即可。

可用功能的详细信息here(自版本 9.7.4 起可用)