ITPub博客

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

YashanDB COALESCE函数

国内数据库 作者:崖山数据库系统YashanDB 时间:2025-04-22 18:19:52 0 删除 编辑

COALESCE函数在多个 expr的值中,查找到第一个不为空的expr值,并将其返回,未查找到时返回NULL。expr的数量最少为2个,最多为100个。

expr值的数据类型可以为YashanDB支持的大多数类型,但同一个参数列表里所有expr值的数据类型必须处于下面同一个分类中,否则函数返回Inconsistent datatype错误:

  • 数值型:按优先度从高到低为DOUBLE、FLOAT、NUMBER、BIGINT、INT、SMALLINT、TINYINT,但BIT类型只能与同类型在同一个参数列表中。
  • 字符型:
    • 按优先度从高到低为VARCHAR、CHAR。
    • 按优先度从高到低为NVARCHAR、NCHAR。
  • 日期时间型:按优先度从高到低为TIMESTAMP、DATE、TIME,但INTERVAL YEAR TO MONTH、INTERVAL DAY TO SECOND只能与同类型在同一个参数列表中。
  • 布尔型:BOOLEAN
  • CLOB
  • BLOB
  • NCLOB
  • XMLTYPE

如所有expr值的数据类型处在同一分类中(字符型数据包含两个子分类),但具体类型不相同,函数将按上面所列优先级顺序进行类型转换,如 (expr1 NUMBER, expr2 SMALLINT,expr3 FLOAT)时,expr1、expr2的数据类型将被转换成FLOAT,且函数返回一个FLOAT型数据。

当同一个参数列表里的所有expr值均为NULL时,函数返回NULL。

示例

-- numbers_nobit表中包含如下字段和数据SELECT numbera,numberb,numberc,numberd,numbere,numberf,numberg FROM numbers_nobit;
     NUMBERA NUMBERB  NUMBERC               NUMBERD     NUMBERE     NUMBERF     NUMBERG------------ ------- -------- --------------------- ----------- ----------- -----------
          -5      55     5555   5555555555555555555  5.555E+000  5.556E+000         555
 -- 按照三个expr中数据类型优先级最高的进行转换,numbera的值被转换为FLOAT类型SELECT COALESCE(numbera,numberb,numbere) res FROM numbers_nobit;
        RES 
----------- 
  -5.0E+000
 SELECT COALESCE('','',true) res FROM DUAL;RES                  
-------------------- true


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

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

注册时间:2023-04-11

  • 博文量
    722
  • 访问量
    639898