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()函数的主要内容,如果未能解决你的问题,请参考以下文章
MySQL的group_concat聚集函数到HGDB的迁移
MySQL的group_concat聚集函数到HGDB的迁移