COALESCE 是一个用于返回第一个非 NULL 值的函数,适合在查询中处理 NULL 值的场景。

它可以接受一个或多个参数,按照参数的顺序进行检查,返回第一个非 NULL 的值。如果所有参数都为 NULL,则返回 NULL。

语法

COALESCE(expression1, expression2, …, expressionN)

参数

  • expression1, expression2, …, expressionN: 要评估的表达式列表。

返回值

 

  • 返回第一个非 NULL 的值。
  • 如果所有参数都为 NULL,返回 NULL

 

使用场景

  1. NULL 值提供默认值。
  2. 在多列之间选择优先级最高的非 NULL 值。
  3. 简化复杂的条件判断。

实战

示例 1:处理单个字段的 NULL 值

假设有一个 users 表:

id name nickname fullname
1 Alice NULL Alice L.
2 Bob Bobby NULL
3 Charlie NULL NULL

查询:返回 nickname,如果 nickname 为 NULL,则使用 fullname,如果两者都为 NULL,返回 N/A:

SELECT id,
name,
COALESCE(nickname, fullname, ‘N/A’) AS display_name
FROM users;

结果

id name display_name
1 Alice Alice L.
2 Bob Bobby
3 Charlie N/A

示例 2:设置返回字段的默认值

假设某个订单表 orders 中,有一个字段 discount_price,如果 discount_priceNULL,则返回 original_price 的值。

SELECT id,
product_name,
COALESCE(discount_price, original_price) AS final_price
FROM orders;

示例 3:排序时处理 NULL 值

对表按某列排序,但将 NULL 值视为特定值,例如 0。

SELECT *
FROM users
ORDER BY COALESCE(age, 0) DESC;

作者 admin

百度广告效果展示