COALESCE

MaxCompute COALESCE函数会从左至右的顺序对输入的参数进行逐一检查,一旦遇到第一个非NULL的值,就会立即返回该值,并不再继续检查后面的参数。本文为您介绍COALESCE函数的命令格式、参数说明以及使用示例。

命令格式

coalesce(<expr1>, <expr2>, ...)

参数说明

expr:必填。待验证的值。

返回值说明

返回值类型和参数数据类型相同。

使用示例

  • 示例1:常见用法。命令示例如下。

    --返回1。
    select coalesce(null,null,1,null,3,5,7);
  • 示例2:参数值类型未定义,返回报错。

    • 错误命令示例

      --参数abc未定义类型,系统引擎无法识别,导致返回报错。
      select coalesce(null,null,1,null,abc,5,7);
    • 正确命令示例

      select coalesce(null,null,1,null,'abc',5,7);
  • 示例3:在非表读取的情况下,如果参数值全部为空,则返回报错。错误命令示例如下。

    --返回报错,会提示至少有一个参数值非NULL。
    select coalesce(null,null,null,null);
  • 示例4:在表读取的情况下,如果参数值全部为空,则返回NULL。

    原始数据表:

    +-----------+-------------+------------+
    | shop_name | customer_id | toal_price |
    +-----------+-------------+------------+
    | ad        | 10001       | 100.0      |
    | jk        | 10002       | 300.0      |
    | ad        | 10003       | 500.0      |
    | tt        | NULL        | NULL       |
    +-----------+-------------+------------+

    由原始数据表可以看出,tt的值全部为空。则执行以下语句后返回值为NULL。

    select coalesce(customer_id,total_price) from sale_detail where shop_name='tt';

相关函数

COALESCE函数属于其他函数,更多其他业务场景的函数请参见其他函数