功能
返回列表中的第一个非空表达式。
语法
COALESCE ( expression, expression [ , ...] )
参数
expression 任意表达式。
标准和兼容性
SQL/92 SQL/92。
SQL/99 核心特性。
示例
下面的语句返回值 34。
SELECT COALESCE( NULL, 34, 13, 0 )
备注
如果所有参数均为 NULL,则 COALESCE 返回 NULL。
COALESCE(expression1,...n) 与此 CASE 函数等效:
CASE WHEN (expression1 IS NOT NULL) THEN expression1
...
WHEN (expressionN IS NOT NULL) THEN expressionN ELSE NULLEND
尽管 ISNULL 等效于 COALESCE,但它们的行为是不同的。包含具有非空参数的 ISNULL
的表达式将视为 NOT NULL,而包含具有非空参数的 COALESCE 的表达式将视为 NULL。
使用COALESCE的秘密在于大部分包含空值的表达式最终将返回空值(连接操作符“||”
是一个值得注意的例外)。例如,空值加任何值都是空值,空值乘任何值也都是空值,
依此类推。
这样您就可以构建一系列表达式,每个表达式的结果是空值或非空,这就像一个CASE语
句,表达式按照顺序进行测试,第一个满足条件的值就确定了结果。