MySQL COALESCE 函数使用详解

news/2025/10/31 19:56:33/文章来源:https://www.cnblogs.com/lgx5/p/19181144

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.mzph.cn/news/952169.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[KaibaMath]1016 关于数列与其子数列下标不等关系的证明

[KaibaMath]1016 关于数列与其子数列下标不等关系的证明子数列是从原数列中按原顺序任意选取无穷多项组成的新数列。下面给出原数列下标与子数列下标不等关系的证明。

MySQL解析JSON格式字段并取出部分值的方式

在MySQL中,从JSON格式的字段中提取数据可以使用JSON_EXTRACT()函数,或者使用->操作符。 假设你有一个名为mytable的表,其中有一个json_data字段,它的数据类型是JSON,并且包含了一个JSON对象。{"name"…

【详细介绍】一种基于斜二进制的序列树上数据结构

简版。这个文大概是详细地讲讲上面那篇东西里第二种 ds 的原理和实现。不需要读者有太多前置知识。但熟知 BIT 原理将对理解本文有较大帮助。 由于没有查阅到相关资料,本文中的称呼全是作者瞎起的,还请勿要见怪。 作…

drm分析

drm架构是?主要函数有哪些?● DRM(Direct Rendering Manager)是Linux内核中负责管理显卡和GPU的核心子系统,支持硬件加速的2D/3D渲染、显示输出和内存管理。以下是其架构解析和关键函数:DRM核心架构graph LR A[用…

8、认识for循环

学习重点一、for循环的概念 二、for循环的基本格式 三、for循环的基本用法思考题如何打印2行星号,一行50个 ? 写下你的思考: 如何输出20行"hello world"? 写下你的思考:知识点 1、for循环的概念 循环结…

node.js安装搭建

node.js 说明 官网:https://nodejs.org/zh-cn nvm-windows Windows 安装 直接使用 nvm-windows 安装 Node.js:https://github.com/coreybutler/nvm-windows/releases nvm version nvm install latest nvm use 25.1.0…

102302156 李子贤 数据采集第二次作业

作业1 在中国气象网(http://www.weather.com.cn)给定城市集的7日天气预报,并保存在数据库。 (1)代码和运行结果点击查看代码 from bs4 import BeautifulSoup from bs4 import UnicodeDammit import urllib.reques…

2025年储能线束生产厂家排名:众晟强电子领先

摘要 2025年储能线束行业迎来快速发展,随着新能源和智能电网的普及,市场需求持续增长。储能线束作为关键组件,其质量、效率和可靠性成为企业选择供应商的核心因素。本文基于行业数据、用户口碑和技术评测,为您呈现…

SVD分解及其应用

奇异值分解已经有一百多年的历史。1873年Beltrami从双线性函数出发,引入线性变换,Beltrami 提出利用自由度使矩阵S的对角线以外的元素全部为零,即矩阵=Σ=𝑑𝑖𝑎𝑔(𝜎,𝜎,,𝜎)为对角矩阵。于是用𝑈…

2025年市场上工业线束生产厂家排名前十

摘要 工业线束作为智能制造和自动化设备的核心组件,在2025年迎来快速发展,市场需求持续增长。本文基于行业数据和技术评测,为您呈现2025年市场上工业线束生产厂家的前十排名,旨在帮助用户高效选择可靠供应商。排名…

解决Python matplotlib绘制图像无法显示中文的问题

引言 在数据可视化过程中,Python 的 Matplotlib 是广泛使用的绘图库。然而,在图表标题、坐标轴标签或图例中使用中文时,字符会显示为方块。这直接影响数据图表的可读性,尤其在学术论文、技术报告或博客中,这种可读…

2025年工业线束生产厂家排名前十强,东莞众晟强电子引领行业创新

摘要 随着工业4.0和智能制造的深入推进,2025年工业线束行业迎来新一轮技术变革。本文基于市场调研数据和技术实力评估,为您呈现行业内前十强生产厂家的综合排名,并提供详细的企业实力分析供采购决策参考。表单数据显…

完整教程:【C语言数据结构】第2章:线性表(1)--定义ADT

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

【论道】前端动画总结

楼高望不见,尽日栏杆头。—— 《西洲曲》 最近在做某项目首页,甲方要求要有动效,不得不捡起当年在AI部练就的css技能,索性做个总结,以便归纳自己在交互与动效的经验。 前端岗是用户与产品的一道桥梁,既是UI在htm…

软件构建,藏在细节里的“工程思维”

如果说编程入门时,我学的是“如何写出一行能执行的代码”,那《代码大全2》教会我的,就是“如何用工程思维构建一个可靠的软件系统”。这本书厚达千页,却没有一句废话,从需求分析到代码调试,从团队协作到项目维护…

从“会编码”到“懂开发”,一场开发者的认知升级

在编程这条路上,我曾以为“技术栈越新、代码写得越快”就是优秀开发者的标准。直到读完《代码大全2》,才发现自己一直停留在“会编码”的层面,而这本书,恰好为我打开了“懂开发”的大门。它不只是一本编码技巧手册…

Mac版4K Video Downloader Plus Pro v1.5.2安装教程|dmg文件下载后拖拽到应用程序教程

Mac版4K Video Downloader Plus Pro v1.5.2安装教程|dmg文件下载后拖拽到应用程序教程​ 一款 ​Mac 专用​ 的视频下载工具,支持从 ​YouTube、抖音、B站、Facebook 等主流平台​ 高速下载视频、音频,还能下载 ​4…

《代码大全》的读后感

在软件开发领域摸爬滚打三年后,我曾陷入一种 “技能停滞” 的困境 —— 能熟练使用主流框架实现需求,却总在项目迭代中频繁遭遇代码臃肿、bug 频发的问题,始终无法突破 “合格开发者” 到 “优秀开发者” 的壁垒。直…

把coarse粗调音高转换成频率的数学公式

把coarse粗调音高转换成频率的数学公式频率倍数 = 2^(coarse/12)

思科vManage漏洞分析:四漏洞链实现未授权远程代码执行

本文详细分析了Cisco Viptela vManage中的四个安全漏洞,包括SSRF+任意文件写入、未授权文件读取+目录遍历、命令注入和权限提升漏洞,攻击者可通过组合利用这些漏洞实现未授权的远程代码执行并获取root权限。SD-PWN —…