瀚高DB相容MySQL if函式

瀚高PG實驗室發表於2021-12-22
環境
系統平臺: 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;

如果有其他情況,按照使用場景的資料型別進行更換便是,需要注意的是返回值的資料型別要保持一致。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69994931/viewspace-2848906/,如需轉載,請註明出處,否則將追究法律責任。

相關文章