达梦数据库(DM8)兼容mysqlSQL

问题描述

原本在mysql中可以运行的sql,在DM8执行失败,比如在sql中使用到group by

分析原因

达梦数据库在GROUP BY的处理上更加符合SQL标准的严格要求。如果在SELECT语句中使用了GROUP BY,那么所有非聚合的列都必须出现在GROUP BY子句中。这是为了确保查询结果的确定性和准确性。

解决方案1

为了使查询能在DM8中正常工作,并且提高代码的可移植性和准确性,应当修改查询语句以确保所有在SELECT子句中引用的非聚合列都包括在GROUP BY子句中

select fl.id,fl.column1, fl.column2, ..., fl.columnN  -- 列出所有需要的列
from fl
GROUP BY fl.id, fl.column1, fl.column2, ..., fl.columnN;  -- 在 GROUP BY 中包括所有列

解决方案2

使用DISTINCT关键字

SELECT DISTINCT fl.* 
FROM  fl 

解决方案3

在DM8中 修改为兼容mysql模式

修改dm.ini中的COMPATIBLE_MODE=4,然后重启数据库
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值