Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> MySql

जब कोई मेल खाने वाली पंक्तियाँ नहीं हैं, तो मैं NULL के बजाय MySQL SUM () फ़ंक्शन के आउटपुट को 0 पर कैसे अनुकूलित कर सकता हूँ?


जैसा कि हम जानते हैं कि यदि कोई मिलान पंक्ति नहीं है तो SUM() फ़ंक्शन NULL लौटाता है, लेकिन कभी-कभी हम चाहते हैं कि यह NULL के बजाय शून्य लौटाए। इस उद्देश्य के लिए, हम MySQL COALESCE () फ़ंक्शन का उपयोग कर सकते हैं जो दो तर्कों को स्वीकार करता है और दूसरा तर्क देता है यदि पहला तर्क NULL है, अन्यथा, यह पहला तर्क देता है। उपरोक्त अवधारणा को समझने के लिए, एक 'कर्मचारी_tbl' तालिका पर विचार करें, जिसमें निम्नलिखित रिकॉर्ड हैं -

<पूर्व>mysql> चुनें * कर्मचारी_टीबीएल से;+----------+------+---------------+--------------- --------+| आईडी | नाम | work_date | Daily_typing_pages |+----------+------+---------------+-------------------------- +| 1 | जॉन | 2007-01-24 | 250 || 2 | राम | 2007-05-27 | 220 || 3 | जैक | 2007-05-06 | 170 || 3 | जैक | 2007-04-06 | 100 || 4 | जिल | 2007-04-06 | 220 || 5 | ज़ारा | 2007-06-06 | 300 || 5 | ज़ारा | 2007-02-06 | 350 |+------+------+---------------+---------------------- सेट में +7 पंक्तियाँ (0.00 सेकंड)

अब, MySQL SUM() फ़ंक्शन 0 देता है जब हम 'मोहन' द्वारा टाइप किए गए पृष्ठों की कुल संख्या को खोजने के लिए SUM() के साथ COALESCE फ़ंक्शन का उपयोग करते हैं, वह नाम जो 'नाम' कॉलम में नहीं है -

mysql> चयन करें COALESCE(SUM(daily_typing_pages),0) as 'SUM(daily_typing_pages)' FROM Employee_tbl जहां नाम ='मोहन';+---------------------- --------+| एसयूएम(दैनिक_टाइपिंग_पेज) |+--------------------------+| 0 |+--------------------------+1 पंक्ति सेट में (0.00 सेकंड)

  1. मैं अपने MySQL टेबल कॉलम के नाम कैसे प्राप्त कर सकता हूं?

    इसके लिए आप SHOW कमांड का इस्तेमाल कर सकते हैं। निम्नलिखित वाक्य रचना है - अपनेTableName से कॉलम दिखाएं; आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable(StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentFirstName varchar(20), StudentLastName varchar(20), StudentAge int, StudentAddress varc

  1. मैं MySQL में स्थापित किए गए इंडेक्स को कैसे देख सकता हूं?

    इंडेक्स देखने के लिए, आप SHOW कमांड का उपयोग कर सकते हैं। निम्नलिखित वाक्य रचना है - अपनेTableName से अनुक्रमणिका दिखाएं; आइए पहले एक टेबल बनाएं - टेबल बनाएं डेमोटेबल (आईडी नॉट न्यूल AUTO_INCREMENT PRIMARY KEY, FirstName varchar(20), LastName varchar(20));क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.46 से

  1. क्या हम MySQL WHERE क्लॉज में SUM () फ़ंक्शन के परिणाम का उपयोग कर सकते हैं?

    हम MySQL में WHERE के बजाय HAVING क्लॉज का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाएं - टेबल बनाएं DemoTable(Name varchar(50), Price int);query OK, 0 Rows प्रभावित (0.79 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल मानों में डालें (डेविड, 5); क्वेरी ठीक है, 1 पंक्ति प्रभ