COALESCE
是 SQL 中的一个函数,用于返回其参数列表中第一个非空(NOT NULL)的表达式。如果参数列表中的所有表达式都为 NULL,那么 COALESCE
函数将返回 NULL。这个函数在处理可能出现 NULL 值的字段时非常有用,因为它允许你为可能的 NULL 值提供一个默认的备选值。
基本语法
COALESCE ( expression1, [ expression2 ] , ... , [ expressionN ] )
expression1
,expression2
, …,expressionN
是参数列表,可以包含任意数量的 SQL 表达式。COALESCE
会按照参数列表中的顺序,从左到右依次检查每个表达式,返回第一个非 NULL 的值。- 如果所有表达式都是 NULL,
COALESCE
返回 NULL。
示例
假设你有一个包含员工信息的表,其中有一个字段 salary
可能包含 NULL 值。你想要显示每个员工的薪水,但如果薪水未知(即薪水字段为 NULL),则显示一个默认值,比如 “未知”。你可以使用 COALESCE
函数来实现这一点:
SELECT
employee_id,
employee_name,
COALESCE(salary, '未知') AS displayed_salary
FROM
employees;
在这个例子中,COALESCE
函数会检查 salary
字段的值。如果 salary
不为 NULL,它就会显示这个值;如果 salary
为 NULL,它就会显示 “未知”。
与其他函数的比较
COALESCE
函数与 NULLIF
函数类似,但它们的作用不同。NULLIF
函数用于比较两个表达式,如果它们相等,则返回 NULL,否则返回第一个表达式的值。而 COALESCE
函数则是检查多个表达式,并返回第一个非 NULL 的值。
注意事项
COALESCE
函数在处理 NULL 值时非常有用,但它不会改变数据本身,只是在查询结果中显示不同的值。- 在使用
COALESCE
时,确保理解 NULL 的含义以及它在你的数据库和 SQL 语句中的处理方式。 COALESCE
函数可以用于任何类型的 SQL 表达式,包括列名、常量、函数调用等。