当前位置: 首页 > news >正文

Hive 中的 COALESCE 函数作用

Hive 中的 COALESCE 函数作用

COALESCE 是 Hive 中一个非常常用的空值处理函数,用于从多个列或表达式中返回第一个非空值(non-NULL value)


1. 基本语法
COALESCE(value1, value2, ..., valueN)
  • 从左到右依次判断每个值是否为 NULL
  • 返回第一个非 NULL 的值
  • 如果所有值都是 NULL,则返回 NULL

2. 常见用途
2.1 处理空值,提供默认值
SELECT COALESCE(name, 'Unknown') AS name FROM users;
  • 如果 nameNULL,返回 'Unknown'
  • 否则返回 name
2.2 多列中取第一个非空值
SELECT COALESCE(email, phone, 'No Contact') AS contact FROM users;
  • 如果 email 非空,返回 email
  • 否则如果 phone 非空,返回 phone
  • 否则返回 'No Contact'
2.3 合并多个列的值
SELECT COALESCE(address1, address2, 'No Address') AS address FROM users;
  • 优先使用 address1,如果为空则用 address2,最后用默认值。
2.4 INSERTUPDATE 中使用
INSERT INTO users (name) VALUES (COALESCE(:input_name, 'Default Name'));
  • 如果输入参数 input_nameNULL,插入 'Default Name'

3. IFNULL 的区别
  • IFNULL(expr1, expr2):只处理两个值,如果 expr1NULL,返回 expr2
  • COALESCE:可以处理多个值,更灵活。

示例:

-- IFNULL(仅两个值)
SELECT IFNULL(name, 'Unknown') FROM users;-- COALESCE(多个值)
SELECT COALESCE(name, nickname, 'Unknown') FROM users;

4. CASE WHEN 的等价关系

COALESCE(a, b, c) 等价于:

CASEWHEN a IS NOT NULL THEN aWHEN b IS NOT NULL THEN bELSE c
END

COALESCE 更简洁。


5. 注意事项
  • COALESCE 是 SQL 标准函数,Hive、Spark SQL、MySQL、PostgreSQL 等都支持。
  • 所有参数类型应尽量一致,否则可能隐式转换。
  • 性能优于 CASE WHEN,推荐优先使用。

6. 示例数据
namenicknamephone
AliceNULL123456
NULLBobNULL
NULLNULLNULL

查询:

SELECT COALESCE(name, nickname, 'Unknown') AS display_name FROM users;

结果:

display_name
Alice
Bob
Unknown
http://www.dtcms.com/a/564672.html

相关文章:

  • 网站建设内部下单流程图赣州的免费网站建设
  • 广东顺德网站建设instagram wordpress
  • Linux连接Doris:MySQL与Beeline指南
  • 【金仓数据库】ksql 指南(四) —— 创建与管理表(KingbaseES 数据存储核心)
  • Swift项目生成Framework流程以及与OC的区别
  • C++多线程同步与互斥
  • Python Jupyter Notebook 完全指南:从入门到精通
  • 站点查询wordpress 外贸网站
  • CSP集训错题集 第八周 主题:基础图论
  • 基于C语言 HTTP 服务器客户端的实验
  • 如何利用 Jupyter 从浏览器访问远程服务器
  • C语言基础知识点简单案例分享之二——C语言全知识点速查宝典
  • 怎么找网站局域网电脑做网站服务器
  • 一男一女做那个的动漫视频网站网站怎样推广 优帮云
  • hive常用命令
  • AWS + 飞天CMS:高性能内容站的云端搭建方案
  • 800G光模块:驱动AI与云计算高速互联的核心引擎
  • Python每日一练---第三天:删除有序数组中的重复项
  • U-Net 的输入与输出:通用场景与扩散模型场景解析
  • 李宏毅机器学习笔记39
  • 【代码随想录算法训练营——Day57(Day56周日休息)】图论——53.寻宝
  • PPT+配音生成带旁白的PPT演示视频
  • abp vnext cli无法正常使用,卡在 Checking extensions..,cli修改abp版本及.net版本
  • 萤石摄像头使用NAS作为存储
  • 2025江西省职业院校技能大赛(中职组)移动应用与开发竞赛样题
  • 建站公司哪家好在哪里推广比较好
  • 在 iOS 18 的照片应用,如何批量隐藏截屏?
  • OK3568 Android11 实现 App 独占隔离 CPU 核心完整指
  • 湖南网站建设公司 都来磐石网络泰安营销型网站建设公司
  • Oracle 如何计算 AWR 报告中的 Sessions 数量