You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Progress 12.2数据库:如何合并相同ID的行数据

Progress 12.2 实现相同ID行的字符串分组合并

Progress 12.2(OpenEdge)并不支持String_agg、Group_concat这类其他数据库的字符串聚合函数,你可以用以下两种方法实现需求:

方法一:使用OpenEdge SQL内置的LIST()函数

LIST()是Progress OpenEdge SQL专门用于字符串分组聚合的函数,语法如下:

SELECT id, LIST(code, ', ') AS Code
FROM table
WHERE id = 1
GROUP BY id
  • 第一个参数是需要聚合的字段(这里是code)
  • 第二个参数是分隔符(这里是, )
  • 必须配合GROUP BY子句按id分组

方法二:使用Progress 4GL代码实现

如果SQL方法受限,也可以用4GL代码循环拼接字符串:

DEFINE VARIABLE cCodes AS CHARACTER NO-UNDO.

FOR EACH table WHERE table.id = 1:
    IF cCodes = "" THEN
        cCodes = table.code.
    ELSE
        cCodes = cCodes + ", " + table.code.
END.

DISPLAY 1 AS id cCodes AS Code.

内容的提问来源于stack exchange,提问作者JeromeF99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 17:20:31