if:条件选择
速查结论
if(expr1, expr2, expr3) 是 Spark SQL 中用于根据布尔条件在两个值之间进行选择的函数。
语法
if(expr1, expr2, expr3)
参数说明
| 参数 | 说明 |
|---|---|
| expr1 | 布尔表达式,作为判断条件。 |
| expr2 | 当 expr1 为 true 时返回的值。 |
| expr3 | 当 expr1 为 false 或 NULL 时返回的值。 |
返回说明
如果 expr1 求值为真,则返回 expr2;否则返回 expr3。
示例
> SELECT if(1 < 2, 'a', 'b');
a
常见报错与避坑指南
- expr1 为 NULL:当
expr1为 NULL 时,if 返回expr3而非 NULL,这一点与 CASE WHEN 的行为一致。 - expr2 和 expr3 类型:两个分支的返回类型应一致或可隐式转换,否则可能导致运行时类型错误。
- 与 case when 的区别:简单的二选一场景使用 if 更简洁;多分支条件判断请使用 CASE WHEN。
Since: 1.0.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

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