###########################
场景:
业务在使用join联合查询的时候,比如有两张表A和B,A表有mobile和success两个字段,B表有mobile和fail两个字段,然后通过mobile字段关联这两张表,但是要求只有mobile字段值相同的数据,都需要输出success和fail字段,如果这两个字段中有null,则对应的输出不能为null而是改为0
一般的join:
select A.mobile,A.success,B.fail from A full join
改进的join:
select A.mobile, coalesce(A.success,0),soalesce(B.fail,0) from A full join
select coalesce(字段名,0) as value from t;
coalesce()解释:返回参数中的第一个非空表达式(从左向右依次类推);
使用示例:a,b,c三个变量。
select coalesce(null,2,3); // Return 2
select coalesce(null,null,3); // Return 3
select coalesce(1,2,3); // Return 1
复制代码
通过上面例子可以看出,他的作用是将返回传入的参数中第一个非null的值,再比如
SELECT COALESCE(NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 1);
-- Return 1
如果传入的参数所有都是null,则返回null,比如
SELECT COALESCE(NULL, NULL, NULL, NULL);
-- Return NULL
这个参数使用的场合为:假如某个字段默认是null,你想其返回的不是null,而是比如0或其他值,可以使用这个函数
SELECT COALESCE(字段名,0) as value from t;
############################
发表评论