Presto检查是否为NULL并返回默认值(NVL模拟)

Sas*_*ota 18 sql presto

在presto中是否有任何类似的NVL?

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

我这样解决这个问题:

SELECT
  CASE 
    WHEN my_field is null THEN 0 
    ELSE my_field 
  END
FROM my_table
Run Code Online (Sandbox Code Playgroud)

但我很好奇是否有可以简化此代码的东西.

我的驱动程序版本是 __CODE__

Dav*_*itz 38

这是ISO SQL函数 COALESCE

coalesce(my_field,0)
Run Code Online (Sandbox Code Playgroud)

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

PS COALESCE可以与多个参数一起使用.它将返回第一个(从左侧)非NULL参数,如果未找到则返回NULL.

例如

coalesce (my_field_1,my_field_2,my_field_3,my_field_4,my_field_5)
Run Code Online (Sandbox Code Playgroud)

  • 万一寻找,AWS Athena 也是如此。 (2认同)