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

MySQL में CASE WHEN column1 IS NULL THEN NULL ELSE column2 END

परिचय

MySQL में CASE स्टेटमेंट का उपयोग करके शर्तीय तर्क (conditional logic) लागू किया जा सकता है। यह उदाहरण दिखाता है कि जब पहला कॉलम NULL हो तो NULL लौटाएं, अन्यथा दूसरा कॉलम लौटाएं।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> Name VARCHAR(20),
    -> Marks1 INT,
    -> Marks2 INT
    -> );
Query OK, 0 rows affected (0.72 sec)
mysql> INSERT INTO DemoTable VALUES('Chris', 45, NULL);
Query OK, 1 row affected (0.14 sec)
mysql> INSERT INTO DemoTable VALUES('David', NULL, 78);
Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO DemoTable VALUES('Bob', 67, 98);
Query OK, 1 row affected (0.14 sec)

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट:

+-------+--------+--------+
| Name  | Marks1 | Marks2 |
+-------+--------+--------+
| Chris | 45     | NULL   |
| David | NULL   | 78     |
| Bob   | 67     | 98     |
+-------+--------+--------+
3 rows in set (0.00 sec)

CASE WHEN क्वेरी

mysql> SELECT *,
    -> (CASE WHEN Marks1 IS NULL THEN NULL ELSE Marks2 END) AS Value
    -> FROM DemoTable;

परिणाम

+-------+--------+--------+-------+
| Name  | Marks1 | Marks2 | Value |
+-------+--------+--------+-------+
| Chris | 45     | NULL   | NULL  |
| David | NULL   | 78     | NULL  |
| Bob   | 67     | 98     | 98    |
+-------+--------+--------+-------+
3 rows in set (0.00 sec)

व्याख्या

NameMarks1Marks2शर्तपरिणाम
Chris45NULLMarks1 IS NULL? FALSEMarks2 = NULL
DavidNULL78Marks1 IS NULL? TRUENULL
Bob6798Marks1 IS NULL? FALSEMarks2 = 98

CASE सिंटैक्स वेरिएंट्स

-- सरल CASE (मान की तुलना)
CASE expr WHEN val1 THEN result1 WHEN val2 THEN result2 ELSE default END

-- खोजा गया CASE (शर्तों का मूल्यांकन)
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ELSE default END

समान परिणाम के लिए अन्य फंक्शन्स

  • IF(Marks1 IS NULL, NULL, Marks2) - सरल IF फंक्शन
  • COALESCE(Marks1, Marks2) - पहला नॉन-NULL मान (यहां अलग तर्क)
  • NULLIF(Marks1, Marks1) - हमेशा NULL (उपयोगी नहीं)

CASE स्टेटमेंट सबसे लचीला है और जटिल शर्तीय तर्क के लिए मानक SQL तरीका है।

  1. - MySQL में ORDER BY FIELD और OR से कस्टम क्रम में प्राथमिकता-आधारित सॉर्टिंग

    ORDER BY FIELD(col, val1, val2, ...) का उपयोग करके कस्टम प्राथमिकता क्रम में सॉर्ट करें, और WHERE ... OR ... से केवल वांछित मान चुनें। टेबल बनाएं mysql> CREATE TABLE DemoTable1884 (Marks INT); डेटा डालें mysql> INSERT INTO DemoTable1884 VALUES(55), (97), (79), (87); 98 या 87 में से उच्च प्र

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

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

  1. - MySQL में IF() और IS NULL से कॉलम अपडेट करना

    शर्ती कॉलम अपडेट: यदि NULL तो अपडेट करें, अन्यथा नहीं IF() फ़ंक्शन और IS NULL प्रॉपर्टी का उपयोग करके एक कॉलम को अपडेट करें यदि वह NULL है, अन्यथा दूसरा कॉलम अपडेट करें, और यदि दोनों NULL नहीं हैं तो कुछ न करें। पहले टेबल बनाएं और डेटा डालें: mysql> create table DemoTable1976 ( FirstName varchar(