跳到主要内容

nvl2:空值条件返回

速查结论

nvl2(expr1, expr2, expr3) 是 Spark SQL 中用于根据第一个参数是否为空,返回不同的值的函数。

语法​

nvl2(expr1, expr2, expr3)

参数说明​

参数说明
expr1任意表达式,用于判断是否为 NULL
expr2当 expr1 不为 NULL 时返回的值,类型应与 expr3 兼容
expr3当 expr1 为 NULL 时返回的值,类型应与 expr2 兼容

示例​

> SELECT nvl2(NULL, 2, 1);
1

常见报错与避坑指南​

  • 类型不匹配:expr2 与 expr3 的数据类型必须可隐式转换为共同类型,否则会抛出 AnalysisException。建议在使用前确认两个返回值的类型兼容。
  • NULL 判断方式:nvl2 仅判断 expr1 是否为 NULL(IS NULL),空字符串 '' 和数值 0 都不会被视为 NULL。如需额外处理空字符串,请结合 CASE WHEN。

Since: 2.0.0

微信公众号二维码关注公众号
交流微信二维码加群交流
赞赏二维码赞赏

你可能还想看