跳到主要内容

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

交流微信二维码

你可能还想看