"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > खाली डेटासेट पर MySQL के SUM फ़ंक्शन का उपयोग करते समय NULL के बजाय \'0\' कैसे लौटाएं?

खाली डेटासेट पर MySQL के SUM फ़ंक्शन का उपयोग करते समय NULL के बजाय \'0\' कैसे लौटाएं?

2024-11-05 को प्रकाशित
ब्राउज़ करें:115

How to Return \'0\' Instead of NULL When Using MySQL\'s SUM Function on Empty Datasets?

कोई मान मौजूद नहीं होने पर MySQL के SUM फ़ंक्शन से '0' कैसे प्राप्त करें

MySQL में SUM फ़ंक्शन संख्यात्मक एकत्रीकरण का एक सुविधाजनक तरीका प्रदान करता है मूल्य. हालाँकि, जब क्वेरी के दौरान कोई मेल खाने वाली पंक्तियाँ नहीं मिलती हैं, तो SUM फ़ंक्शन आमतौर पर एक NULL मान लौटाता है। कुछ उपयोग के मामलों के लिए, NULL के बजाय '0' लौटाना अधिक वांछनीय हो सकता है।

समस्या को हल करने के लिए COALESCE का उपयोग

इस समस्या का समाधान निहित है COALESCE फ़ंक्शन. COALESCE आपको एक डिफ़ॉल्ट मान निर्दिष्ट करने की अनुमति देता है, जब पहला तर्क NULL पर मूल्यांकन करता है।

निम्नलिखित उदाहरण पर विचार करें:

SELECT COALESCE(SUM(Column_1),0)
FROM Table
WHERE Column_2 = 'Test'

इस क्वेरी में, COALESCE SUM फ़ंक्शन के चारों ओर लपेटता है। यदि उन पंक्तियों के लिए कॉलम_1 का SUM जहां कॉलम_2 'टेस्ट' के बराबर है, शून्य मान लौटाता है, तो COALESCE इसके बजाय '0' प्रदान करेगा।

प्रदर्शन और अधिक जानकारी

http पर जाएं समाधान के लाइव प्रदर्शन के लिए ://www.sqlfiddle.com/#!2/d1542/3/0।

COALESCE की बारीकियों को गहराई से जानने के लिए, निम्नलिखित परिदृश्य पर विचार करें जिसमें अलग-अलग तीन तालिकाएँ शामिल हैं मूल्य वितरण:

  • तालिका 'फू' में शून्य और गैर-शून्य मानों का मिश्रण होता है।
  • तालिका 'बार' में केवल गैर-शून्य मान होते हैं।
  • तालिका 'baz' में विशेष रूप से NULL मान शामिल हैं। विवरण के रूप में 'मिश्रित शून्य/गैर-शून्य', 21 आशानुसार_योग, COALESCE(SUM(val), 0) वास्तविक_योग के रूप में फू से संघ सब 'बार' को टेबल_नाम के रूप में चुनें, विवरण के रूप में 'सभी गैर-शून्य', 21 आशानुसार_योग, COALESCE(SUM(val), 0) वास्तविक_योग के रूप में बार से संघ सब तालिका_नाम के रूप में 'baz' चुनें, विवरण के रूप में 'सभी शून्य', 0 अपेक्षानुसार_योग, COALESCE(SUM(val), 0) वास्तविक_योग के रूप में Baz से
आपको निम्नलिखित परिणाम प्राप्त होंगे:

SELECT  'foo'                   as table_name,
        'mixed null/non-null'   as description,
        21                      as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    foo
UNION ALL

SELECT  'bar'                   as table_name,
        'all non-null'          as description,
        21                      as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    bar
UNION ALL

SELECT  'baz'                   as table_name,
        'all null'              as description,
        0                       as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    baz

TABLE_NAME

DESCRIPTIONEXPECTED_SUMACTUAL_SUMfoomixed null/non-null2121बारसभी गैर-शून्य2121bazसभी शून्य00
जैसा कि आप देख सकते हैं, COALESCE फ़ंक्शन कुशलतापूर्वक '0' लौटाता है baz' तालिका, जहां सभी मान शून्य हैं।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3