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函数属于其他函数,更多其他业务场景的函数请参见其他函数。