



当查询条件中相关字段存在NULL值时,如果直接使用WHERE字段= @参数值,则怎么都匹配不了为NULL值的记录,因为NULL=任何值,包括NULL=NULL本身都不会返回true,只会仍然是NULL。
此时,可以将NULL进行转换,当字段值为NULL时,转换为一个默认值。
使用coalesce()可以表达此功能,它的功能是返回参数列表(支持不限定数量的参数)中,第一个非空值。
那如果我们需要根据status(包含NULL值,NULL时默认false)来查询,参数值可能是true/false,则可以表达为coalesce(status, false),当status为NULL时,自然返回的就是后边的false。
此时,coalesce(status, false)相当于(case when status is null then false else status end)。