HGDB兼容MySQL if()函数

Posted 瀚高PG实验室

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HGDB兼容MySQL if()函数相关的知识,希望对你有一定的参考价值。

目录
环境
症状
问题原因
解决方案

环境
系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.5
症状
mysql数据库中的if()函数:

IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。就是一个简单的三目表达式。

问题原因
从MySQL数据库迁移到瀚高数据库,瀚高数据库中没有if()函数。

解决方案
为满足客户需求需要自定义同名兼容函数,如下:

CREATE OR REPLACE FUNCTION left(text, integer)

RETURNS text AS $$

  SELECT substring($1 FOR $2);

$$ IMMUTABLE STRICT LANGUAGE SQL;

传入的是timestamp类型,需要稍作修改,如下:

CREATE OR REPLACE FUNCTION left(TIMESTAMP, integer)

RETURNS TEXT AS $$

  SELECT substring($1::TEXT FOR $2);

$$ IMMUTABLE STRICT LANGUAGE SQL;

以上是关于HGDB兼容MySQL if()函数的主要内容,如果未能解决你的问题,请参考以下文章

HGDB兼容MySQL date_format函数

HGDB兼容MySQL date_format函数

MySQL的group_concat聚集函数到HGDB的迁移

MySQL的group_concat聚集函数到HGDB的迁移

MySQL的substring_index函数到HGDB的迁移

瀚高DB兼容MySQL if函数