DM 和 MySQL 的一些异同
单双引号
- 字段名取别名,MySQL 中使用单引号,达梦中使用双引号,没有使用别名的情况下字段名有可能会自动大写。
- 如果表中的字段名和关键字重复,字段名需使用双引号,使用双引号时查询字段名必须和表中字段名大小写一致
- 达梦中 where 条件查询的字段可以不加双引号,只有需要指定字段大小写时才使用
- 达梦不支持
\
` 字符(英文状态 esc 下面的按键)
1 |
|
函数
达梦中没有
find_in_set
函数使用分组时,查询的字段必须出现在
group by
中(聚合函数除外)1
2--查询年龄为18的人,并按学号分组(想要显示姓名字段,必须在group by后面加上name字段)
select a.student_id,a.name from userTable a where age='18' group by a.student_id,a.name达梦中没有
group_concat
函数,需要使用WM_CONCAT
函数代替,WM_CONCAT
函数只有一个参数,不能指定分隔符,不能拼接其他字段1
select WM_CONCAT(a.name) from userTable a
当
WM_CONCAT
字段内容太长时会超出字符串长度,需要cast函数转换类型1
select cast(WM_CONCAT(a.name) as varchar2) as "names" from userTable a
CONVERT 函数与 MySQL 的使用方式是相反的
1
2
3
4--MySQL
select CONVERT(a.age, varchar2) as 'age' from userTable a
--达梦
select CONVERT(varchar2,a.age) as "age" from userTable adate_format
改为to_date
1
2
3
4
5
6
7
8
9
10
11-- MySQL:
convert(Date,DATE)
date_format(Date,'%Y-%m-%d %H:%i:%s')
-- 达梦:
to_char(Date,'YYYY-MM-DD')
to_char(Date,'YYYY-MM-DD HH24:MI:SS')
to_date(Date,'YYYY-MM-DD HH24:MI:SS')
date_format(Date,'%Y-%m-%d %H:%i:%s')
-- 人大金仓:
to_date(Date,'YYYY-MM-DD')
to_char(Date,'YYYY-MM-DD HH24:MI:SS')=>转换出的类型是varchar型,不能与时间类型的相比较,可以两个都使用to_char转换的相比较日期类型不能直接和字符类型的日期比较大小,需要用
date_format
转换后使用SUBDATE()
改成DATE_SUB()
函数ADDDATE()
改成DATE_ADD()
函数distinct
和order by
同时使用时,排序的字段必须出现在 distinct 关键字后面
DM 和 MySQL 的一些异同
https://flepeng.github.io/042-国产-DM-达梦数据库-DM-和-MySQL-的一些异同/