当前位置: 首页 > article >正文

达梦数据库:dm与mysql语法差异(select)

目录

    • 简介
    • 语法差异


简介

对接dm数据库,记录与mysql-select的语法差异


语法差异

1select时,达梦数据库字段别名不支持单引号,支持双引号

2、在开启大小写敏感的情况下,在DM管理工具select时,达梦数据库字段别名不支持单引号,也不支持双引号。在Mapper的XML编写的sql支持双引号

3、在开启大小写敏感的情况下,select时,达梦数据库字段不支持反引号

4、达梦数据库where条件字段不支持双引号

5、达梦数据库不支持DATE_SUB()函数,可以使用DATEADD()函数代替
mysql:select DATE_SUB(DATE_FORMAT(NOW(),'%Y-%m-%d'), INTERVAL 30 DAY);
dm:SELECT DATEADD(DAY, -30, DATE_FORMAT(NOW(),'%Y-%m-%d'));

6、mysql与达梦数据库date_add函数的使用有差异
mysql:SELECT date_add(NOW(),INTERVAL 7 DAY);
dm:SELECT DATEADD(DAY, 7, NOW());

7、达梦数据库不支持date()函数,可以用其他函数代替
select TO_CHAR(now(), 'YYYY-MM-DD');
select DATE_FORMAT(now(), '%Y-%m-%d');

8、达梦数据库不支持GROUP_CONCAT()函数,可以用其他函数代替
返回的是字符串:LISTAGG(字段,'分隔符')
返回的是长文本:WM_CONCAT(字段)

9、mysql的GROUP_CONCAT(字段 ORDER BY 字段 )在达梦数据库应替换为:LISTAGG(字段,',' ) WITHIN GROUP (ORDER BY 字段)

10、达梦数据库除数不能为0

11、达梦数据库的"case when"语句"then"后边只能是固定值

12、CAST(value AS TYPE)函数将value转为字符串时,应该使用VARCHAR,而不是CHAR
正确示例,VARCHAR为可变长字符串:CAST( 111 AS VARCHAR )
错误示例,CHAR是固定字符串:CAST( 111 AS CHAR )

13、达梦数据UNIX_TIMESTAMP()函数必须要传递日期

14、在mapper中达梦数据库不支持binary CURDATE()binary CURTIME()

15select时,如果字段名正好是关键字,要加上双引号,否则会字段名称会变成大写

16、如果程序使用shardingsphere框架,DDL时,如果字段名正好是关键字,要加上双引号,否则可能报错空指针,因为shardingsphere对接DM时,使用的是SQL92 SQL解析器,解析不了部分SQL

17、如果程序使用shardingsphere框架,则不支持CHAr_LENGTH()函数,应使用LENGTH()函数,因为shardingsphere对接DM时,使用的是SQL92 SQL解析器,SQL92不支持CHAr_LENGTH()函数

18、mysql的information_schema.columns、information_schema.tables对应达梦数据库的SYS.DBA_COL_COMMENTS、SYS.DBA_TABLES

19、达梦数据库不支持DATABASE()函数,应使用SYS_CONTEXT('userenv', 'current_schema')

20、达梦数据库不支持UUID()函数,可以使用LOWER(RAWTOHEX(SYS_GUID()))代替,如果程序使用shardingsphere框架,使用LOWER()函数会导致报错,原因不明

21、达梦数据库的MD5()函数返回的字母是大写,可以使用LOWER(MD5())转为小写

http://www.kler.cn/a/296708.html

相关文章:

  • CAP (C# Distributed Application Framework)
  • [Linux Kernel Block Layer第一篇] block layer架构设计
  • Spring Boot项目中如何解决循环依赖
  • 大模型构建合作性的Agent,多代理框架MetaGpt
  • QT 读取Excel表
  • Flask如何创建并运行数据库迁移
  • 【系统架构设计师-2012年】综合知识-答案及详解
  • 【系统架构设计师】工厂方法设计模式
  • 使用PyTorch Lightning力量精简空间分析
  • leetcode hot100_part17_技巧篇
  • docker 安装NextERP
  • Anaconda 中遇到CondaHTTPError: HTTP 404 NOT FOUND for url的问题及解决办法
  • 电脑驱动分类
  • 大模型训练框架LLaMAFactory覆盖预训练指令微调强化学习评估全流程
  • Python 错误 AttributeError 解析,实际错误实例详解
  • go系列之 cron 表达式
  • 如何在实际应用中优化AI大模型性能
  • 纯CSS实现卡片欢动效果
  • 关于腾讯IM消息ID不统一的问题?服务端的MsgKey和前端的msgID不一样
  • 强大的EmotiVoice:易魔声 : 多音色提示控制TTS