首页/数据/SQL 速查/COALESCE 取首个非 NULL 值
函数速查60 条

COALESCE 取首个非 NULL 值

按顺序返回首个非 NULL 的参数:做默认值、多字段兜底、把 NULL 转成业务默认值时使用,是 SQL 标准函数。

SQL 速查数据更新于 2026-10-12

示例

示例
SELECT COALESCE(phone, mobile, backup_phone, '未留联系方式') AS contact
FROM users;

SELECT SUM(COALESCE(amount, 0)) AS total FROM orders;
参数至少 2 个;返回类型取各参数的公共兼容类型
等价写法COALESCE(a,b) 可展开为 CASE WHEN a IS NOT NULL THEN a ELSE b END
与 IFNULL 区别COALESCE 是标准函数且支持多参;IFNULL 仅 MySQL、限 2 参
对聚合结果兜底常用 COALESCE(SUM(x), 0),避免空集合返回 NULL 影响下游计算。

易错点

  • PostgreSQL 里 COALESCE 的类型必须能统一(如 text 与 integer 混用会报错),MySQL 会做隐式转换,迁移时注意
  • 把 COALESCE 当“取非空列”写成长链后难以排查来源,报表里建议配合来源标记列

数据来源与参考

  • MySQL 8.0 Reference Manual · Comparison Functions
  • PostgreSQL Documentation · Conditional Expressions
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌