SQLPathLab
条件与 NULL · 基础

COALESCE

返回第一个非 NULL 值。

简介

COALESCE 从左到右返回第一个非 NULL 表达式,常用于显示备用名称、补齐计算值或避免 NULL 继续传播。它只改变本次查询的结果,不会修改表中的原始数据。候选表达式应使用兼容的数据类型,且替代值必须符合业务含义,不能为了页面好看而把未知数据随意改成 0。

基础语法

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

示例

COALESCE 示例

依次尝试 nickname、name 和固定文本 Unknown,观察每行如何选择第一个非 NULL 值。

示例数据表

表名:users
users
namenickname
Tom NULL
Jack J
Lucy NULL

运行结果

result
COALESCE(nickname, name, 'Unknown')
Tom
J
Lucy

常见问题

COALESCE 会修改原数据吗?

不会。它只改变本次查询返回的表达式结果,不会写回表。

多个候选值的类型需要一致吗?

最好使用兼容类型,否则数据库可能进行隐式转换或直接报错。

空字符串会被当作 NULL 吗?

MySQL 中空字符串与 NULL 不同;需要分别定义业务处理规则。

标签

条件判断常用

这篇内容是否清楚?