nanvl:NaN替换
速查结论
nanvl(expr1, expr2) 是 Spark SQL 中用于当表达式为 NaN 时返回替代值的函数。
语法
nanvl(expr1, expr2)
参数说明
| 参数 | 说明 |
|---|---|
| expr1 | 主数值表达式(浮点类型)。 |
| expr2 | 当 expr1 为 NaN 时的替代值。 |
返回说明
如果 expr1 不是 NaN,则返回 expr1;否则返回 expr2。
示例
> SELECT nanvl(cast('NaN' as double), 123);
123.0
常见报错与避坑指南
- 仅处理 NaN,不处理 NULL:
nanvl仅在 expr1 为 NaN 时替换为 expr2,如果 expr1 为 NULL,结果也为 NULL。需同时处理 NULL 和 NaN 时,可与coalesce配合使用:coalesce(nanvl(expr, 0), 0)。 - 返回类型:返回值类型与两个输入参数的类型保持一致,确保 expr1 和 expr2 类型兼容。
Since: 1.5.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

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