28、 COALESCE() 返回第一个非NULL值函数

1、COALESCE() 函数

空值处理函数,用于返回参数列表中第一个非 NULL 的值

COALESCE(value1, value2, ..., valueN)
  • 从左到右依次检查每个参数,返回第一个不为 NULL 的值。
  • 如果所有参数都是 NULL,则返回 NULL

如:数据:

namephone
Alice 13800138000
Bob NULL
Carol NULL

场景:用户表中 phone 字段可能为空,查询时希望显示 "未提供" 而不是空白或 NULL

SELECT 
    name,
    COALESCE(phone, '未提供') AS contact_phone
FROM users;

结果:

namecontact_phone
Alice 13800138000
Bob 未提供
Carol 未提供

解析:

  • 对 Alice:phone = '138...' ≠ NULL → 返回 '138...'
  • 对 Bob/Carol:phone = NULL → 跳过,取第二个参数 '未提供'返回。

数据:

namemobileemailwechat
张三 NULL zhang@xx.com NULL
李四 NULL NULL lisi123
王五 139... wang@xx.com NULL
赵六 NULL NULL NULL

场景:用户可能有多个联系方式,优先级:手机 > 邮箱 > 微信 > “无联系方式”

SELECT 
    name,
    COALESCE(mobile, email, wechat, '无联系方式') AS best_contact
FROM users;

结果:

namebest_contact
张三 zhang@xx.com
李四 lisi123
王五 139...
赵六 无联系方式

解析:

  • COALESCE 从左到右扫描,一旦遇到非 NULL 就立即返回
  • 王五虽然有邮箱,但因手机非 NULL,优先返回手机
posted @ 2025-11-20 11:05  chao_xiong  阅读(5)  评论(0)    收藏  举报