下面SQL语句中 coalesce起什么作用呀?

请问 select coalesce(A.id,B.id) AS ID
, coalesce(A.name,B.name) AS name
from classA A full outer join classB B
on A.id=B.id
where A.name Is NULL
OR B.name IS NULL

COALESCE是一个函数, (expression_1, expression_2, ...,expression_n)依次参考各参数表达式,遇到非null值即停止并返回该值。如果所有的表达式都是空值,最终将返回一个空值。使用COALESCE在于大部分包含空值的表达式最终将返回空值。

SQL实例
select coalesce(success_cnt, 1) from table A
当success_cnt 为null值的时候,将返回1,否则将返回success_cnt的真实值。

select coalesce(success_cnt,period,1) from table A
当success_cnt不为null,那么无论period是否为null,都将返回success_cnt的真实值(因为success_cnt是第一个参数),当success_cnt为null,而period不为null的时候,返回period的真实值。只有当success_cnt和period均为null的时候,将返回1。