openGauss插件使用指南:函数和操作符—条件表达式函数

条件表达式函数

注意事项

  • 本章节仅包含dolphin新增的条件表达式函数,原openGauss的条件表达式函数请参考条件表达式函数

条件表达式函数

  • if(bool, expr1, expr2)

    描述:条件判断函数。若bool值为true,则返回expr1;若bool值为false,则返回expr2

    示例:

    openGauss=# select if(true, 1, 2);
     case
    ------
        1
    (1 row)
    
    openGauss=# select if(false, 1, 2);
     case
    ------
        2
    (1 row)
    
  • ifnull( expr1 , expr2 )

    描述:

    • 如果expr1为NULL,则返回expr2。
    • 如果expr1非NULL,则返回expr1。

    示例:

    openGauss=# SELECT ifnull('hello','world');
      nvl  
    -------
     hello
    (1 row)
    

    备注:参数转换逻辑与nvl一致。

  • isnull( expr )

    • 如果expr为NULL,则返回true。
    • 如果expr非NULL,则返回false。

    示例:

    openGauss=# SELECT isnull('hello');
    ?column?  
    --------
          f 
    (1 row)
    

    备注:判空逻辑与expr is null一致。

  • interval(base_expr, expr1, expr2, …, exprn)

    描述:

    • 将base_expr与后面的expr(n)逐一比较,直到expr(n)大于base_expr,返回value(n-1);如果expr(n)均小于等于base_expr,则返回value(n)。

    • 如果base_expr或者expr(n)为非数值数据:

      • BOOL型:TRUE转为1,FALSE转为0;
      • 能将其截断为float8形式浮点数,则将其截断为float8;
      • 不能截断为浮点数float8形式,则视为0。

    示例:

    openGauss=# SELECT interval(5,2,3,4,6,7);
     interval
    ----------
            3
    (1 row)
    
    openGauss=# SELECT interval(false,-1,0,true,2);
     interval
    ----------
            2
    (1 row)
    
    openGauss=# SELECT interval('2022-12-12'::timestamp,'asdf','2020-12-12'::date,2023);
     interval
    ----------
            2
    (1 row)
    
  • strcmp(str1, str2)

    描述:将str1与str2作比较(两个字符串自左向右逐个字符比较),若str1=str2,则返回0;若str1>str2,则返回1;若str1<str2,则返回-1。

    示例:

    openGauss=# SELECT strcmp('asd','asd');
     strcmp 
    --------
          0
    (1 row)
    
    openGauss=# SELECT strcmp(312,311);
     strcmp 
    --------
          1
    (1 row)
    
    openGauss=# SELECT strcmp('2021-12-12'::timestamp,20210::float8);
     strcmp 
    --------
         -1
    (1 row)
  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值