SQL Server 中 COALESCE 函数的使用详解

学习笔记作者:admin日期:2025-08-30点击:10

摘要:本文详细介绍了 SQL Server 中的 COALESCE 函数,包括其语法、功能、示例以及与其他类似函数(如 ISNULL)的区别。通过实际例子说明了如何利用 COALESCE 处理 NULL 值并提供默认值。

COALESCE 函数简介

      在 SQL Server 中,`COALESCE` 是一个非常有用的函数,用于返回其参数列表中第一个非 NULL 的表达式。

语法

COALESCE(expression1, expression2, ..., expressionN)

功能说明

  • `COALESCE` 会从左到右依次检查每个表达式。
  • 返回第一个不为 `NULL` 的值。
  • 如果所有表达式都为 `NULL`,则返回 `NULL`。

示例

      假设有一个表 `Employees`,结构如下:

ID Name Phone Email
1 Alice NULL alice@abc.com
2 Bob 123-456-789 NULL
3 Charlie NULL NULL

示例 1:用 COALESCE 获取联系信息

SELECT 
    Name,
    COALESCE(Phone, Email, 'No contact info') AS ContactInfo
FROM Employees;

      结果:

Name ContactInfo
Alice alice@abc.com
Bob 123-456-789
Charlie No contact info

      解释:

  • Alice:Phone 是 NULL,但 Email 有值,所以返回 Email。
  • Bob:Phone 有值,直接返回 Phone。
  • Charlie:Phone 和 Email 都是 NULL,所以返回默认值 `'No contact info'`。

注意事项

  • 数据类型兼容性:所有参数的数据类型必须兼容,SQL Server 会尝试进行隐式转换。如果类型差异太大,可能会报错。
  • 等价于 CASE 表达式:`COALESCE(a, b, c)` 在功能上等价于:
  • CASE 
        WHEN a IS NOT NULL THEN a
        WHEN b IS NOT NULL THEN b
        ELSE c
    END
  • 与 ISNULL 的区别
    • `ISNULL` 是 SQL Server 特有的函数,只接受两个参数:`ISNULL(check_expression, replacement_value)`。
    • `COALESCE` 是 SQL 标准函数,支持多个参数,更灵活。
    • 通常推荐使用 `COALESCE`,因为它更通用、可移植性更强。

总结

      `COALESCE` 的作用是“取第一个非空值”,常用于处理可能为 NULL 的字段,提供默认值或备用值,是 SQL 中处理空值的常用手段。

上一篇      下一篇