在Hive的数据处理实践中,COALESCE函数是一个高频使用的实用工具。其逻辑非常直观:从左到右依次扫描参数列表,返回首个非NULL的值。若所有参数均为空,则直接返回NULL。该功能在合并多个字段或进行备选值取值时极为便捷——例如,当你需要从一组可能为空的列中选取第一个非空值时,使用它最合适不过。

语法结构同样简洁明了:
COALESCE(arg1, arg2, ..., argN)
参数数量不限,每个参数可以是字段、常量或表达式。理解起来并不复杂,关键在于掌握其实际应用场景。下面通过几个典型示例,让你快速掌握用法:
示例1:返回首个非空字符串
SELECT COALESCE('apple', 'banana', 'cherry');结果:
apple(因为首个参数即为非空,立即返回)示例2:获取首次出现的非空数字
SELECT COALESCE(5, 10, NULL, 15);结果:
5(同样,首个非空即停止,后续的NULL和15不会被评估)示例3:提取第一个非空日期值
SELECT COALESCE(CURRENT_DATE, '2021-01-01', NULL);结果:执行当天的日期(如
2023-06-21),因为CURRENT_DATE通常不为空。若该函数因异常返回NULL,才会使用后续的固定日期作为兜底。
需要注意的是,COALESCE函数在Hive 2.0版本中才正式引入。若你使用的Hive版本低于2.0,则可能无法识别此函数。建议在执行查询前确认版本兼容性,以避免出现意外的错误提示。
