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真题
