COALESCE
返回第一个非 NULL 值。
简介
COALESCE 从左到右返回第一个非 NULL 表达式,常用于显示备用名称、补齐计算值或避免 NULL 继续传播。它只改变本次查询的结果,不会修改表中的原始数据。候选表达式应使用兼容的数据类型,且替代值必须符合业务含义,不能为了页面好看而把未知数据随意改成 0。
基础语法
SELECT COALESCE(nickname, name, 'Unknown') FROM users;
示例
COALESCE 示例
依次尝试 nickname、name 和固定文本 Unknown,观察每行如何选择第一个非 NULL 值。
示例数据表
表名:
users| name | nickname |
|---|---|
| Tom | NULL |
| Jack | J |
| Lucy | NULL |
运行结果
| COALESCE(nickname, name, 'Unknown') |
|---|
| Tom |
| J |
| Lucy |
常见问题
COALESCE 会修改原数据吗?
不会。它只改变本次查询返回的表达式结果,不会写回表。
多个候选值的类型需要一致吗?
最好使用兼容类型,否则数据库可能进行隐式转换或直接报错。
空字符串会被当作 NULL 吗?
MySQL 中空字符串与 NULL 不同;需要分别定义业务处理规则。
标签
这篇内容是否清楚?
感谢反馈,我们会把它用于后续内容复核。