CASE स्टेटमेंट के साथ SUM() का उपयोग
MySQL में किसी कॉलम में NULL मानों की संख्या गिनने के लिए CASE स्टेटमेंट का उपयोग SUM() के साथ करें।
सिंटैक्स
SELECT SUM(CASE WHEN yourColumn IS NULL THEN 1 ELSE 0 END) AS null_count FROM yourTableName;
उदाहरण
1. टेबल बनाना
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
FirstName VARCHAR(20)
);
Query OK, 0 rows affected (0.77 sec)
2. डेटा डालना (NULL और खाली स्ट्रिंग दोनों)
mysql> INSERT INTO DemoTable(FirstName) VALUES('John');
mysql> INSERT INTO DemoTable(FirstName) VALUES(NULL);
mysql> INSERT INTO DemoTable(FirstName) VALUES(''); -- खाली स्ट्रिंग
mysql> INSERT INTO DemoTable(FirstName) VALUES('Larry');
mysql> INSERT INTO DemoTable(FirstName) VALUES(''); -- खाली स्ट्रिंग
mysql> INSERT INTO DemoTable(FirstName) VALUES(NULL);
mysql> INSERT INTO DemoTable(FirstName) VALUES(NULL);
mysql> INSERT INTO DemoTable(FirstName) VALUES('Bob');
3. सभी रिकॉर्ड्स देखना
mysql> SELECT * FROM DemoTable;
+----+-----------+ | Id | FirstName | +----+-----------+ | 1 | John | | 2 | NULL | | 3 | | | 4 | Larry | | 5 | | | 6 | NULL | | 7 | NULL | | 8 | Bob | +----+-----------+ 8 rows in set (0.00 sec)
4. NULL मान गिनना
mysql> SELECT SUM(CASE WHEN FirstName IS NULL THEN 1 ELSE 0 END) AS NUMBER_OF_NULL_VALUE
FROM DemoTable;
+----------------------+ | NUMBER_OF_NULL_VALUE | +----------------------+ | 3 | +----------------------+ 1 row in set (0.00 sec)
NULL vs खाली स्ट्रिंग ('')
| मान | IS NULL | = '' | LENGTH() |
|---|---|---|---|
| NULL | TRUE | FALSE (NULL) | NULL |
| '' (खाली स्ट्रिंग) | FALSE | TRUE | 0 |
| ' ' | FALSE | FALSE | 1 |
NULL और खाली स्ट्रिंग दोनों गिनना
SELECT
SUM(CASE WHEN FirstName IS NULL THEN 1 ELSE 0 END) AS null_count,
SUM(CASE WHEN FirstName = '' THEN 1 ELSE 0 END) AS empty_count,
SUM(CASE WHEN FirstName IS NULL OR FirstName = '' THEN 1 ELSE 0 END) AS null_or_empty
FROM DemoTable;
सरल विकल्प: COUNT(*) - COUNT(column)
SELECT COUNT(*) - COUNT(FirstName) AS null_count FROM DemoTable;
COUNT(*) सभी पंक्तियाँ गिनता है, COUNT(column) केवल NULL नहीं गिनता।
IS NULL vs = NULL
✅ सही: WHERE column IS NULL
SQL में NULL = NULL हमेशा FALSE (वास्तव में UNKNOWN) होता है।