Presto 检查是不是为 NULL 并返回默认值(NVL 模拟)
Posted
技术标签:
【中文标题】Presto 检查是不是为 NULL 并返回默认值(NVL 模拟)【英文标题】:Presto check if NULL and return default (NVL analog)Presto 检查是否为 NULL 并返回默认值(NVL 模拟) 【发布时间】:2017-09-02 16:12:03 【问题描述】:Presto DB 中有 NVL 的类似物吗?
我需要检查一个字段是否为 NULL 并返回一个默认值。
我以某种方式解决了这个问题:
SELECT
CASE
WHEN my_field is null THEN 0
ELSE my_field
END
FROM my_table
但我很好奇是否有什么东西可以简化这段代码。
【问题讨论】:
【参考方案1】:用于此的 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)
【讨论】:
同样适用于 AWS Athena 以防万一。以上是关于Presto 检查是不是为 NULL 并返回默认值(NVL 模拟)的主要内容,如果未能解决你的问题,请参考以下文章