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)

नीचे दी गई क्वेरी, 'Students' टेबल के डेटा का उपयोग करके, 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)

नोट: CASE एक्सप्रेशन में ELSE क्लॉज वैकल्पिक है। इसके बिना, कोई शर्त मेल न खाने पर NULL लौटाता है। COALESCE या IFNULL से डिफ़ॉल्ट मान प्रदान करें।

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

    MySQL में CASE स्टेटमेंट का उपयोग सशर्त तर्क (conditional logic) लागू करने के लिए किया जाता है। यह आपको SQL क्वेरीज़ में IF-ELSE जैसी कार्यक्षमता प्रदान करता है। सिंटैक्स SELECT *, CASE WHEN आपकी_शर्त THEN आपका_स्टेटमेंट WHEN आपकी_शर्त THEN आपका_स्टेटमेंट ... E

  1. - MySQL में TINYINT कॉलम पर <> 1 या IS NULL शर्त से रिकॉर्ड चुनें

    MySQL में TINYINT कॉलम (आमतौर पर बूलियन के लिए उपयोग) पर <> 1 या IS NULL शर्त से रिकॉर्ड फ़िल्टर कर सकते हैं। उदाहरण: अविवाहित (isMarried ≠ 1) या अज्ञात (NULL) कर्मचारी 1. टेबल बनाएं ); 2. डेटा डालें INSERT INTO DemoTable(EmployeeName, isMarried) VALUES(Bob, 0); 3. सभी रिकॉर्ड SELECT *

  1. - MySQL में CASE WHEN के साथ काउंट कैसे करें?

    MySQL में शर्ती गिनती (कंडीशनल काउंट) करने के लिए SUM(CASE WHEN ... THEN 1 ELSE 0 END) पैटर्न का उपयोग करें। यह एक ही क्वेरी में एकाधिक शर्तों की गिनती करने का कुशल तरीका है। उदाहरण: विशिष्ट मार्क्स की गिनती प्रति छात्र डेमो टेबल बनाएं: mysql> CREATE TABLE DemoTable1910 ( FirstName VARCHAR