COALESCE
概述
COALESCE 函数用于返回其参数列表中第一个非空(non-null)的表达式值。如果所有参数都是空值(null),则返回空值(null)。
语法
参数
:待验证的表达式,参数数量可变,但至少需要一个。参数可以使用不同类型,但必须能够按 Lakehouse 的隐式类型转换规则推导出公共类型。exprN
返回值
- 所有参数先完成公共类型推导和必要的隐式转换,返回类型是推导出的公共类型。
- 运行时返回转换后的第一个非空值;如果所有参数均为空值,则返回空值(null)。
使用示例
示例 1:基本使用
在此示例中,
COALESCE 函数返回第一个非空参数 'A'。
示例 2:处理多个可能为空的字段
假设
column1、column2 和 column3 均有可能包含空值。此查询将返回这三个字段中的第一个非空值。
示例 3:混合 STRING 与数值类型
该表达式的公共类型被推导为数值类型,
'abc' 转换失败后变为 NULL,因此继续返回 123。如果业务希望保留字符串,应显式统一类型:
注意事项
- 公共类型在表达式求值前确定;运行时一旦找到转换后的第一个非空值,就会停止求值后续参数。
- 当所有参数均为空值时,
函数返回空值(null),不会引发错误。COALESCE - 默认
下,隐式转换失败返回cz.sql.cast.mode=tolerant
;设置为NULL
时转换失败报错。strict
通过 NULL 判定而不是相等比较选择结果。COALESCE
联系我们
