- 背景:
最近着手公司项目数据库迁移工作(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;