瀚高DB兼容MySQL if函数

环境

系统平台:Linux x86-64 Red Hat Enterprise Linux 7
版本:4.5

症状

MySQL if函数在瀚高DB当中没有,源应用在用到if函数时,就会报if函数不存在的错误信息。为此,我们需要根据业务需求自定义if函数。

问题原因

瀚高中没有if函数此函数。

解决方案

If函数说明

在mysql中if()函数的用法类似于java中的三目表达式,其用处也比较多,具体语法如下:

IF(expr1,expr2,expr3),如果expr1的值为true,则返回expr2的值,如果expr1的值为false,则返回expr3的值。

MySQL中,if函数使用非常广泛,支持的类型也很多。我们可以自定义if函数并实现其功能,但并不是能够百分百富县MySQL的if函数功能。所以只能根据应用所用场景或者功能定制写if函数。下面写几个例子。

自定义IF函数例子

第二、三个参数是一样的数据类型。

create or replace function if(bln boolean,inValue1 anyelement,inValue2 anyelement)

returns anyelement as

$$

begin

if bln=true then

   return inValue1;

else

   return inValue2;

end if;

end;

$$

language plpgsql;

第二、三个参数都是varchar类型:

create or replace function if(bln boolean,inValue1 VARCHAR,inValue2 VARCHAR)
returns varchar as
$$
begin
if bln=true then
   return inValue1;
else
   return inValue2;
end if;
end;
$$
language plpgsql;

第二、三个参数都是numeric类型:

create or replace function if(bln boolean,inValue1 numeric,inValue2 numeric)
returns numeric as
$$
begin
if bln=true then
   return inValue1;
else
   return inValue2;
end if;
end;
$$
language plpgsql;

如果有其他情况,按照使用场景的数据类型进行更换便是,需要注意的是返回值的数据类型要保持一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值