जब MySQL SUM() फंक्शन को बिना मान वाले कॉलम पर लागू किया जाता है, तो यह 0 के बजाय NULL लौटाता है। लेकिन यदि हम इस आउटपुट को 0 दिखाने के लिए कस्टमाइज़ करना चाहते हैं, तो COALESCE() फंक्शन का उपयोग कर सकते हैं जो दो आर्गुमेंट स्वीकार करता है और पहला आर्गुमेंट NULL होने पर दूसरा आर्गुमेंट लौटाता है।
इसे समझने के लिए Tender टेबल के निम्न डेटा का उपयोग करते हैं:
mysql> Select * from tender; +----+---------------+--------------+ | Sr | CompanyName | Tender_value | +----+---------------+--------------+ | 1 | Abc Corp. | 250.369003 | | 2 | Khaitan Corp. | 265.588989 | | 3 | Singla group. | 220.255997 | | 4 | Hero group. | 221.253006 | | 5 | Honda group | NULL | +----+---------------+--------------+ 5 rows in set (0.00 sec)
SUM() फंक्शन 'Honda Group' द्वारा कोट किए गए कुल टेंडर वैल्यू को खोजते समय NULL लौटाता है क्योंकि उस कॉलम में कोई मान नहीं है।
mysql> Select SUM(Tender_value) From Tender Where CompanyName = 'Honda Group'; +-------------------+ | SUM(Tender_value) | +-------------------+ | NULL | +-------------------+ 1 row in set (0.00 sec)
लेकिन यदि हम इस आउटपुट को NULL से 0 में कस्टमाइज़ करना चाहते हैं, तो COALESCE फंक्शन का उपयोग SUM() के साथ कर सकते हैं।
mysql> Select COALESCE(SUM(Tender_value),0) From Tender Where CompanyName = 'Honda Group'; +-------------------------------+ | COALESCE(SUM(Tender_value),0) | +-------------------------------+ | 0.000000 | +-------------------------------+ 1 row in set (0.00 sec)
अब, COALESCE फंक्शन के साथ SUM() का उपयोग करके 'Mohan' द्वारा टाइप किए गए कुल पेजों की संख्या खोजने पर MySQL SUM() फंक्शन 0 लौटाता है, भले ही 'Mohan' नाम 'Name' कॉलम में न हो।
mysql> SELECT COALESCE(SUM(daily_typing_pages),0) FROM employee_tbl WHERE Name = ‘Mohan’; +-------------------------+ | SUM(daily_typing_pages) | +-------------------------+ | 0 | +-------------------------+ 1 row in set (0.00 sec)
उपरोक्त परिणाम सेट से स्पष्ट है कि MySQL SUM() फंक्शन कॉलम में कोई मान न होने पर उसके डेटा टाइप की परवाह किए बिना NULL लौटाएगा।