达梦数据库: SQL查询报错《不是 GROUP BY 表达式解决方法》

发布时间 2023-06-19 14:47:08作者: 不秃头就不会变强

报错信息:

****: 第4 行附近出现错误:
不是 GROUP BY 表达式

修改办法:

达梦可以配置兼容参数,COMPATIBLE_MODE=4,静态参数,需要重启数据库后生效!
sp_set_para_value(2,'COMPATIBLE_MODE',4);
select para_name,para_value,file_value from v$dm_ini where para_name='COMPATIBLE_MODE';

!!注意修改后需要重启数据库!!


解释

COMPATIBLE_MODE参数解释:
0: 不兼容
1:兼容 SQL92 标准
2: 部分兼容 ORACLE
3: 部分兼容 MS SQL SERVER 
4: 部分兼容 MYSQL
5:兼容 DM6
6: 部分兼容 TERADATA

使用 GROUP BY 要注意以下问题:

1.在 GROUP BY 子句中的每一列必须明确地命名属于在 FROM 子句中命名的表的一列。分组列的数据类型不能是多媒体数据类型;
2.分组列不能为集函数表达式或者在 SELECT 子句中定义的别名;
3.当分组列值包含空值时,则空值作为一个独立组;
4.当分组列包含多个列名时,则按照 GROUP BY 子句中列出现的顺序进行分组;
5. GROUP BY 子句中至多可包含 255 个分组列;
6. ROLLUP\CUBE\GROUPING SETS 组合不能超过 9 个。

原文链接:https://blog.csdn.net/qq_37898570/article/details/126951104