• 背景:

最近着手公司项目数据库迁移工作(MySQL->DM),接口测试时dao层测试类和查询类出了不少问题。比较头疼的是函数兼容问题,CONCAT是其中之一。

  • 原SQL语句:
SELECT AA, GROUP_CONCAT(BB) BB, GROUP_CONCAT(CC) CC
FROM test
WHERE 1 = 1
GROUP BY AA;
  • 报错信息:(使用CONCAT/CONCAT_WS函数报错信息相同)

在这里插入图片描述

  • 解决思路

使用DM技术文档CONCAT(char1,char2,char3…)函数和CONCAT_WS(delim, char1,char2,char3,…)函数,发现还是报错。
分析原因后觉得这两个函数只能作用于普通查询,无法作用于分组查询,无法根据分组条件动态拼接字符串

  • 解决方式

使用WM_CONCAT函数(达梦技术文档居然没有这玩意儿)

SELECT AA, WM_CONCAT(BB) BB, WM_CONCAT(CC) CC
FROM test
WHERE 1 = 1
GROUP BY AA;
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐