跳到主要内容

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

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

备注「数据仓库技术」加入社群,每日一道大厂SQL真题

交流微信二维码

你可能还想看