1、不兼容mysql特殊字符 `
2、返回结果集的类型为Map,需手动对查询的列字段,取别名,用双引号括起来
3、less、identify、over为关键字,不允许直接作为表字段名、列别名使用,一定要使用只能先用双引号括起来,如果是从mysql数据库迁移过来的表,这些特殊表字段需要用双引号括起来(mysql是使用特殊字符`括起来,用引号括起来会被识别为常量字符串)
4、group by 语句前的select列字段只允许出现聚合函数、分组字段,blob、clob(text)列字段不支持分组,其他普通字段建议使用first_value(字段)函数,取分组聚合后的第一行值
5、order by 语句跟着的是select的原表的表字段,而不是别名
ps: 最新dm8版本配置兼容mysql写法时,group by、order by 语句支持mysql写法,支持SUBSTRING_INDEX、DATE_FORMAT、FIND_IN_SET函数。
6、不支持group_concat函数,建议使用listagg(字段,拼接符) 替换
7、IF函数后面2个的值,最好同类型,或者可以进行类型互相转换,不能定义为null,例如 IF(true, 'yes', null),这个写法是不允许的,会执行报错,可以使用case when语句兼容
8、不支持timestamp(日期,时间),可使用CAST(concat(日期, ' ', 时间) AS TIMESTAMP)替换
例如 timestamp(‘2024-02-06', '11:00:00'),可使用CAST(concat(‘2024-02-06', ' ', '11:00:00') AS TIMESTAMP)替换