2017-04-07 9578 views
4

是否有presto中的NVL模拟?Presto检查是否为NULL并返回默认值(NVL模拟)

我需要检查字段是否为NULL并返回默认值。

我莫名其妙地解决这个问题是这样的:

SELECT 
    CASE 
    WHEN my_field is null THEN 0 
    ELSE my_field 
    END 
FROM my_table 

不过我很好奇,如果有什么事,可以简化此代码。

我的驱动程序版本为0.171

回答

5

为与ISO SQL函数是COALESCE

coalesce(my_field,0) 

https://prestodb.io/docs/current/functions/conditional.html

附:
COALESCE可以与多个参数一起使用。
它将返回第一个(从左边)非NULL参数,如果没有找到则返回NULL。
例如

coalesce (my_field_1,my_field_2,my_field_3,my_field_4,my_field_5)