CASE स्टेटमेंट और IFNULL() के साथ NULL मानों को रिप्लेस करना
NULL मानों को कस्टम टेक्स्ट (जैसे 'UNKNOWN NAME') से बदलने के लिए CASE स्टेटमेंट या IFNULL() फंक्शन का उपयोग करें।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
FirstName VARCHAR(20)
);
रिकॉर्ड्स इन्सर्ट करें (NULL मान सहित):
mysql> INSERT INTO DemoTable VALUES ('John');
mysql> INSERT INTO DemoTable VALUES (NULL);
mysql> INSERT INTO DemoTable VALUES ('Adam');
mysql> INSERT INTO DemoTable VALUES (NULL);
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+-----------+ | FirstName | +-----------+ | John | | NULL | | Adam | | NULL | +-----------+
तरीका 1: CASE स्टेटमेंट
mysql> SELECT CASE
WHEN FirstName IS NULL THEN 'UNKNOWN NAME'
ELSE FirstName
END AS FirstName
FROM DemoTable;
आउटपुट:
+--------------+ | FirstName | +--------------+ | John | | UNKNOWN NAME | | Adam | | UNKNOWN NAME | +--------------+
तरीका 2: IFNULL() फंक्शन (सरल)
mysql> SELECT IFNULL(FirstName, 'UNKNOWN NAME') AS FirstName FROM DemoTable;
आउटपुट: समान परिणाम
तुलना:
| विशेषता | CASE | IFNULL() |
|---|---|---|
| लचीलापन | एकाधिक शर्तें संभव | केवल दो मान (NULL/नॉन-NULL) |
| पठनीयता | जटिल तर्क के लिए बेहतर | सरल केस के लिए संक्षिप्त |
| पोर्टेबिलिटी | SQL मानक | MySQL-विशिष्ट |
| प्रदर्शन | समान | समान |
COALESCE() - मानक विकल्प:
SELECT COALESCE(FirstName, 'UNKNOWN NAME') AS FirstName FROM DemoTable;
COALESCE SQL मानक है और एकाधिक आर्गुमेंट्स ले सकता है: COALESCE(col1, col2, col3, 'default')।
NULL-सेफ तुलना: IS NULL या IS NOT NULL का उपयोग करें, = NULL कभी काम नहीं करता।