问一下 Hologres 在mybatis里使用 isnull 为什么会报错?[阿里云实时数仓]

问一下 Hologres 在mybatis里使用 isnull 为什么会报错? 使用is null就没问题.报错信息 syntax error, expect THEN, actual IDENTIFIER pos 271, line 1, column 266, token IDENTIFIER ISNULL

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
=====这是一个广告位,招租中,联系qq 78315851====
1 条回复 A 作者 M 管理员
  1. 在Hologres的SQL语法中,IS NULL是用于判断某个字段是否为null的关键字,而ISNULL则是一个用户定义的函数,用于判断一个表达式是否为null。因此,你应该使用IS NULL而不是ISNULL

    在你的代码中,你可能使用了ISNULL,这导致了语法错误。你应该将其改为IS NULL

    另外,Hologres的SQL语法还有一些其他的特性和注意事项,例如,它不支持某些复杂的CASE语句,也不支持某些复杂的聚合函数。在使用Hologres时,你应该参考其官方文档,了解其SQL语法的特性和限制。

  2. 根据您提供的错误信息,“syntax error, expect THEN, actual IDENTIFIER pos 271, line 1, column 266, token IDENTIFIER ISNULL”,表明在SQL语句中的语法有问题,期待THEN,但实际上遇到了IDENTIFIER(标识符),位置为第271个字符,行号为1,列号为266,token类型为IDENTIFIER ISNULL。
    这是因为Mybatis使用了Java的命名规则,即大小写敏感,而ISNULL是一个保留字,因此需要用全大写字母书写。所以在Mybatis中使用isnull会报错,而使用is null就没有问题。