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

किन स्थितियों में, MySQL CASE स्टेटमेंट NULL लौटाता है?


जैसा कि हम जानते हैं कि यदि कोई तुलना या शर्त सत्य नहीं है तो CASE कथन परिणाम लौटाता है ELSE . के बाद निर्दिष्ट बयान। लेकिन क्या होगा अगर कोई ELSE . नहीं है कथन, तो इस स्थिति में, CASE कथन NULL लौटाएगा। इसे प्रदर्शित करने के लिए एक उदाहरण निम्नलिखित है।

उदाहरण

mysql> Select CASE 100
    -> WHEN 150 THEN 'It is matched'
    -> WHEN 200 THEN 'It is not matched'
    -> END As 'It Returns NULL';
+-----------------+
| It Returns NULL |
+-----------------+
| NULL            |
+-----------------+
1 row in set (0.00 sec)

नीचे दी गई क्वेरी, 'छात्र' तालिका के डेटा का उपयोग करते हुए, NULL लौटाती है क्योंकि कोई भी छात्र देश WI से संबंधित नहीं है।

mysql> Select SUM(CASE WHEN country = 'USA' THEN 1 ELSE 0 END) AS USA,
    -> SUM(CASE WHEN country = 'UK' THEN 1 ELSE 0 END) AS UK,
    -> SUM(CASE WHEN country = 'INDIA' THEN 1 ELSE 0 END) AS INDIA,
    -> SUM(CASE WHEN country = 'Russia' THEN 1 ELSE 0 END) AS Russia,
    -> SUM(CASE WHEN country = 'France' THEN 1 ELSE 0 END) AS France,
    -> SUM(CASE WHEN country = 'NZ' THEN 1 ELSE 0 END) AS NZ,
    -> SUM(CASE WHEN country = 'Australia' THEN 1 ELSE 0 END) AS Australia,
    -> SUM(CASE WHEN country = 'WI' THEN 1 END) AS WI
    -> From Students;
+------+------+-------+--------+--------+------+-----------+------+
| USA  | UK   | INDIA | Russia | France | NZ   | Australia | WI   |
+------+------+-------+--------+--------+------+-----------+------+
| 2    | 1    | 2     | 1      | 1      | 1    | 1         | NULL |
+------+------+-------+--------+--------+------+-----------+------+
1 row in set (0.00 sec)

  1. WHEN क्लॉज के साथ MySQL CASE स्टेटमेंट को लागू करें

    WHEN क्लॉज के साथ केस स्टेटमेंट का उपयोग परिस्थितियों के आसपास काम करने के लिए किया जाता है। निम्नलिखित वाक्य रचना है- सेलेक्ट *, केस जब आपकी कंडीशन तब आपका स्टेटमेंट जब आपकी कंडीशन फिर आपका स्टेटमेंट। .else yourStatementfrom yourTableName; आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभाव

  1. MySQL TINYINT टाइप करने के लिए <>1 या IS NULL रिकॉर्ड लौटाता है

    आइए पहले एक टेबल बनाएं - );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.83 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - डेमोटेबल में डालें (कर्मचारी नाम, विवाहित है) मान (बॉब, 0); क्वेरी ठीक है, 1 पंक्ति प्रभावित (0.10 सेकंड) चयन कथन का उपयोग करके तालिका से सभी रिकॉर्ड प्रदर्शित करें -

  1. केस के साथ गिनती करें जब MySQL में स्टेटमेंट?

    इसके लिए आप CASE WEN स्टेटमेंट का इस्तेमाल कर सकते हैं। आइए पहले एक टेबल बनाएं - तालिका बनाएं DemoTable1910 ( FirstName varchar(20), Marks int );क्वेरी ओके, 0 पंक्तियाँ प्रभावित (0.00 सेकंड) इंसर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें - DemoTable1910 मानों (डेविड,98) में डालें; क्वेरी ठ