文档首页/
数据库和应用迁移 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;