达梦数据库报错:不是 GROUP BY 表达式

原因

当SELECT查询中使用了GROUP BY子句对结果集进行分组时,SELECT子句中的每一列都必须是GROUP BY子句中的一部分,或者是聚合函数(如SUM, COUNT, MAX, MIN等)的一部分。如果没有满足这个条件,就会出现这个错误。

解决办法

第1步: 执行 sp_set_para_value函数如下:

select para_name,para_value,para_type from v$dm_ini where para_name='COMPATIBLE_MODE';
#默认 para_value= 0:不兼容
#参数的方法:sp_set_para_value(范围,参数名称,参数值);
sp_set_para_value(2,'COMPATIBLE_MODE',4);

参数说明:
范围: 1 修改内存和参数文件2 修改参数文件
参数值: 0:不兼容,1:兼容SQL92标准,2:兼容ORACLE,3:兼容MS SQL SERVER,4:兼容MYSQL
  要求兼容ORACLE,即把参数值改为2。
  要求兼容MYSQL,即把参数值改为4。

第2步: 重启服务

#windows系统重启服务:
#停止服务
net stop DmServiceDMSERVER
net stop DmAPService
#启动服务
net start DmServiceDMSERVER
net start DmAPService
#linux系统重启服务
service DmServiceDMSERVER restart

发表评论

邮箱地址不会被公开。 必填项已用*标注