条件表达式¶
本页说明 Polars SQL 中可用的条件表达式。
CASE¶
标准 SQL CASE 表达式有两种形式。"简单"形式会从左到右检查每个 value 表达式,直到找到一个等于 expression 的值:
CASE expression
WHEN value THEN result
[ WHEN ... ]
[ ELSE result ]
END
返回匹配 value 对应的 result。如果没有找到匹配项,并且存在 ELSE 子句,则返回该子句中的 result;否则返回 null。示例:
SELECT a,
CASE a
WHEN 1 THEN 'one'
WHEN 2 THEN 'two'
ELSE 'many'
END
"搜索"形式会从左到右计算每个布尔 condition,直到某个条件为 true,并返回匹配的 result:
CASE
WHEN condition THEN result
[ WHEN ... ]
[ ELSE result ]
END
如果没有任何条件为 true,并且存在 ELSE 子句,则返回该子句中的 result;否则返回 null。示例:
SELECT a, b,
CASE
WHEN a = 1 THEN 'aaa'
WHEN b = 2 THEN 'bbb'
ELSE 'ccc'
END
IF¶
IF 表达式等价于只有一个条件的 CASE 表达式:
CASE
WHEN condition THEN true_value
[ ELSE false_value ]
END
- if(condition, true_value)¶
如果
condition为 true,则计算并返回true_value;否则返回 null。
- if(condition, true_value, false_value)
如果
condition为 true,则计算并返回true_value;否则计算并返回false_value。
COALESCE¶
- coalesce(value[, ...])¶
返回参数列表中的第一个非空
value。至少需要一个参数。
NULLIF¶
- nullif(value1, value2)¶
如果
value1等于value2,则返回 null;否则返回value1。