文档首页/ 数据库和应用迁移 UGO/ 用户指南/ 语法转换指南/ 转换错误码/ Oracle To GaussDB 转换错误码/ U0100078:GaussDB 中 LISTAGG 函数不支持 DISTINCT 关键字
更新时间:2025-06-04 GMT+08:00

U0100078:GaussDB 中 LISTAGG 函数不支持 DISTINCT 关键字

描述

数据库类型与版本

  • 源库类型与版本:UGO 支持的 Oracle 版本。
  • 目标库类型与版本:GaussDB V2.0-9.0 之前的版本。

语法示例

GaussDB V2.0-9.0 之前版本 LISTAGG 函数的聚集列表达式不支持 DISTINCT 关键字,如下示例在 GaussDB 中不支持,UGO 将生成此错误提示。

SELECT LISTAGG(DISTINCT col,';') WITHIN GROUP(ORDER BY col) FROM listagg_t1;

改造建议

建议升级 GaussDB 版本或改造业务。改造业务可参考如下示例,通过子查询和ROW_NUMBER函数来实现类似的功能:

SELECT LISTAGG(col, ';') WITHIN GROUP(ORDER BY col)
FROM (
  SELECT col, ROW_NUMBER() OVER (PARTITION BY col ORDER BY col) AS rn  FROM listagg_t1
) t WHERE rn = 1;