【问题标题】: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

但我很好奇是否有什么东西可以简化这段代码。

【问题讨论】:

    标签: sql presto amazon-athena


    【解决方案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 以防万一。
    猜你喜欢
    • 2012-10-17
    • 2018-10-10
    • 2021-11-16
    • 2023-03-26
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2021-01-08
    • 1970-01-01
    相关资源
    最近更新 更多