SQL COALESCE 函数
https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions023.htm#SQLRF00617
COALESCE(expr [, expr ]…)
COALESCE
返回表达式列表中的第一个非空expr
。您必须至少指定两个表达式。如果所有出现的expr都评估为null,则该函数返回null。
Oracle数据库使用短路评估。数据库评估每个expr值并确定它是否为NULL,而不是在确定所有expr值是否为NULL之前先评估所有的expr值。
如果所有出现的expr都是数字数据类型或可以隐式转换为数字数据类型的任何非数字数据类型,则Oracle数据库将确定具有最高数字优先级的参数,将其余参数隐式转换为该数据类型,然后返回该数据类型。
此功能是NVL
功能的概括。
您还可以将COALESCE用作各种CASE表达式。例如,
COALESCE (expr1, expr2)
等效于:
CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE expr2 END
同样的
COALESCE (expr1, expr2, …, exprn), for n>=3
等效于:
CASE WHEN expr1 IS NOT NULL THEN expr1 ELSE COALESCE (expr2, …, exprn) END
其他资料:
https://docs.oracle.com/cd/B28359_01/server.111/b28286/functions.htm#SQLRF006
https://docs.oracle.com/cd/B28359_01/server.111/b28286/expressions004.htm#SQLRF20037