为了简单起见,我的查询字段是:ORDER ID,ORDER AMOUNT和ORDER TEXT。
我的问题是我们公司通常有多个'ORDER TEXT'字段,这使得我的查询返回第二条记录(Stacked),其中包含所有重复数据(ORDER ID,ORDER AMOUNT),除了其他'ORDER TEXT',这是不同的文字。
是否可以将第二个“ORDER TEXT”字段放在第一个“ORDER TEXT”字段(Straddled)旁边,或者甚至将两者连接成DB2中的一个长“ORDER TEXT”字符串?
假设您无法以任何方式创建其他表或操作数据库。一如既往,非常感谢任何帮助!
答案 0 :(得分:2)
尝试使用聚合函数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
只需将表名替换为您正在使用的表名。
有关可用功能的详细信息here(自版本9.7.4起可用)