###########################
場景:
業務在使用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 B on A.mobile=B.mobile
改進的join:
select A.mobile, coalesce(A.success,0),soalesce(B.fail,0) from A full join B on A.mobile=B.mobile
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;
############################
#############################