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

MySQL COALESCE 函数使用详解

MySQL COALESCE 函数使用详解

COALESCE 是 MySQL 中一个非常有用的函数,用于返回参数列表中的第一个非 NULL 值。下面详细介绍它的用法和示例。

基本语法

COALESCE(value1, value2, ..., valueN)

功能说明

  • 函数从左到右依次检查每个参数
  • 返回第一个不为 NULL 的参数值
  • 如果所有参数都为 NULL,则返回 NULL

使用场景

1. 处理 NULL 值替代

SELECT COALESCE(column_name, '默认值') FROM table_name;

当 column_name 为 NULL 时,返回 ‘默认值’

2. 多列优先选择

SELECT COALESCE(phone, mobile, email, '无联系方式') AS contact_info FROM customers;

按优先级选择第一个不为 NULL 的联系方式

3. 计算中使用

SELECT product_name, price * COALESCE(discount, 1) AS final_price FROM products;

当 discount 为 NULL 时使用 1 作为默认折扣

实际示例

示例1:基本使用

SELECT COALESCE(NULL, 'A', 'B');  -- 返回 'A'
SELECT COALESCE(NULL, NULL, 'B'); -- 返回 'B'
SELECT COALESCE(NULL, NULL, NULL); -- 返回 NULL

示例2:表数据应用

-- 假设有员工表 employees,其中 commission 列可能为 NULL
SELECT employee_name,COALESCE(commission, 0) AS commission
FROM employees;

示例3:与 CASE 表达式等效

COALESCE 可以看作是以下 CASE 表达式的简写:

CASE WHEN value1 IS NOT NULL THEN value1WHEN value2 IS NOT NULL THEN value2...ELSE NULL
END

注意事项

  • COALESCE 是 ANSI SQL 标准函数,在大多数数据库中可用
  • 与 IFNULL 函数不同,COALESCE 可以接受多个参数
  • 性能考虑:参数越多,评估成本越高
  • 所有参数应该是相同或兼容的数据类型


与相关函数比较

  • IFNULL(expr1, expr2):只有两个参数,相当于 COALESCE(expr1, expr2)
  • ISNULL(expr):只检查是否为 NULL,返回 1 或 0
  • NULLIF(expr1, expr2):当 expr1 = expr2 时返回 NULL,否则返回 expr1
  • COALESCE 因其灵活性和标准性,通常是处理 NULL 值的最佳选择。

 

http://www.jsqmd.com/news/172978/

相关文章:

  • AI Agent的多语言支持:跨语言理解与生成
  • 函数式编程:Lambda 表达式:Compose 的核心。比如 { onClick() },请直接给出一些练习事例出来
  • 基于SMO滑模观测器算法的永磁同步电机无传感器矢量控制
  • 什么是Agentic AI?通俗解释为什么企业都在做智能体
  • nim游戏原理
  • spring项目中业务逻辑涉及异步调用
  • Java CountDownLatch 代码示例:协调多个线程的执行顺序(比赛起跑)
  • 电气设备的发热量计算
  • 试过很多方法没用!怎么让孩子近视度数涨得慢些?
  • Segmentation Fault 调试指南:gdb + ASan + Valgrind 全流程实战
  • 微网优化调度:Matlab + Yalmip 实现之旅
  • 荣膺行业殊荣,iBox以数字科技激活文化传承新生态
  • MATLAB + 深度学习 = 心电图分类神器!完整流程 + 关键代码
  • 北京陪诊机构推荐守嘉陪诊:全链条护航让首都就医更从容 - 品牌排行榜单
  • 2025最新!自考党必看!10个AI论文平台测评与推荐
  • 不止是整理
  • UKB数据库/RAP平台批量下载数据教程
  • javaSE继承随笔
  • 做好孩子视力守护者预防“小眼镜”秘籍在这里
  • 智能一卡通系统配置清单包含管理中心设备、门禁、考勤、访客、通道闸机、梯控、停车场等九大子系统。核心设备包括服务器、管理平台、读卡器等,各子系统通过统一平台实现数据交互与权限管理
  • 云服务器 vs 传统服务器:核心区别与选型指南​
  • 云服务器成本管控:从粗放投入到精细运营
  • 智慧指挥中心建设厂商重磅盘点,成功案例+专业背书,itc保伦股份值得信赖 - 速递信息
  • Java+React全栈开发面试宝典(完整60题)
  • 云服务器架构演进:从虚拟化到容器化与无服务器的跨越
  • 云服务器架构演进:从虚拟化到容器化与无服务器的跨越
  • 2026年AI入门指南:四个学习平台的使用体验 - 速递信息
  • 墨香飘洋:当外国友人执起中国毛笔
  • 基于微信小程序的课程资料共享平台设计与实现
  • 回收站存在大量对象,导致Insert into...select语句夯住