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

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

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

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 की बारीकियों को गहराई से समझने के लिए, विभिन्न मूल्य वितरण के साथ तीन तालिकाओं को शामिल करने वाले निम्नलिखित परिदृश्य पर विचार करें:

  • तालिका 'foo' में NULL और गैर- का मिश्रण है शून्य मान।
  • तालिका 'बार' में केवल गैर-शून्य मान शामिल हैं।
  • तालिका 'बाज़' में विशेष रूप से शून्य शामिल हैं मान।

निम्नलिखित क्वेरी लागू करके:

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विवरणEXP ECTED_SUMACTUAL_SUM
fooमिश्रित शून्य/गैर-शून्य2121
barसभी गैर-शून्य2121
bazसभी शून्य00

जैसा कि आप देख सकते हैं, COALESCE फ़ंक्शन कुशलतापूर्वक 'baz' तालिका के लिए '0' लौटाता है, जहां सभी मान शून्य हैं।

नवीनतम ट्यूटोरियल अधिक>

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

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

Copyright© 2022 湘ICP备2022001581号-3