ITPub博客

首页 > 数据库 > 国内数据库 > YashanDB IF函数

YashanDB IF函数

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-06-05 12:01:17 0 删除 编辑

IF函数有3个 expr参数,若expr1为TRUE,返回expr2,若expr1为FALSE,返回expr3。

expr1的值可以为任意数据类型,为NULL时视为FALSE,若不为NULL:

  • 对于数值类型或可隐式转换为数值类型的其他类型,其值为非0时,视为TRUE,其值为0时,视为FALSE;
  • 对于不可隐式转换为数值类型的类型,视为FALSE;
  • 对于BOOLEAN类型和BOOLEAN表达式,按其真假处理。

expr2,expr3的值可以为任意数据类型。当expr2和expr3数据类型不相同时,函数将先进行隐式类型转换再返回结果,转换规则与 IFNULL中规则一致。

需注意,本函数如下规格与MySQL中的IF函数存在差异:

  • 当expr2和expr3均为BIT类型时,YashanDB返回BIT类型,MySQL返回INT/BIGINT UNSIGNED类型;
  • 当epxr2和epxr3为BOOLEAN、TINYINT或SMALLINT类型时,YashanDB按照BOOLEAN<TINYINT<SMALLINT的优先级进行类型转换,MySQL全部返回INT类型;

示例

SELECT IF(1, 2, 3) res FROM DUAL;
         RES 
------------ 
           2SELECT IF(0, 2, 3) res FROM DUAL;
         RES 
------------ 
           3SELECT IF(SYSDATE, TRUE, FALSE) res FROM DUAL;RES                  
-------------------- false    SELECT IF(TRUE, TRUE, FALSE) res FROM DUAL;RES                  
-------------------- true SELECT IF(FALSE, TRUE, FALSE) res FROM DUAL;RES                  
-------------------- false   SELECT IF(2,5.44, CAST('0.232222' AS DOUBLE)) res,TYPEOF (IF(2,5.44, CAST('0.232222' AS DOUBLE))) res_typeFROM DUAL;
        RES RES_TYPE                                                         
----------- ----------- 
  5.44E+000 double


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70028812/viewspace-3086744/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: YashanDB IFNULL函数
请登录后发表评论 登录
全部评论
崖山数据库系统YashanDB是深圳计算科学研究院完全自主研发设计的新型数据库系统,融入原创理论,支持单机/主备、共享集群、分布式等多种部署方式,覆盖OLTP/HTAP/OLAP交易和分析混合负载场景,为客户提供一站式的企业级融合数据管理解决方案。

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639807