IF() फंक्शन का उपयोग करके NULL मानों को परिणाम सेट में कस्टम मान (जैसे 'N/A') से बदल सकते हैं।
समस्या: NULL मान अर्थहीन दिखते हैं
mysql> SELECT * FROM employee;
+----+--------+--------+
| ID | Name | Salary |
+----+--------+--------+
| 1 | Gaurav | 50000 |
| 2 | Rahul | 20000 |
| 3 | Advik | 25000 |
| 4 | Aarav | 65000 |
| 5 | Ram | 20000 |
| 6 | Mohan | 30000 |
| 7 | Aryan | NULL |
| 8 | Vinay | NULL |
+----+--------+--------+
समाधान: IF() फंक्शन
mysql> SELECT ID, Name, IF(Salary IS NULL, 'N/A', Salary) AS 'Salary'
FROM employee;
परिणाम
+----+--------+--------+
| ID | Name | Salary |
+----+--------+--------+
| 1 | Gaurav | 50000 |
| 2 | Rahul | 20000 |
| 3 | Advik | 25000 |
| 4 | Aarav | 65000 |
| 5 | Ram | 20000 |
| 6 | Mohan | 30000 |
| 7 | Aryan | N/A |
| 8 | Vinay | N/A |
+----+--------+--------+
IF() सिंटैक्स
IF(condition, value_if_true, value_if_false)
condition:Salary IS NULLvalue_if_true:'N/A'(स्ट्रिंग)value_if_false:Salary(मूल संख्या)
प्रकार संगतता
MySQL स्वचालित रूप से परिणाम प्रकार निर्धारित करता है। यहां संख्या और स्ट्रिंग मिश्रित हैं → परिणाम VARCHAR होता है।
वैकल्पिक: COALESCE/IFNULL
SELECT COALESCE(Salary, 'N/A') FROM employee; -- काम नहीं करेगा (प्रकार मिसमैच)
SELECT IFNULL(Salary, 'N/A') FROM employee; -- समान समस्या
-- बेहतर:
SELECT CASE WHEN Salary IS NULL THEN 'N/A' ELSE CAST(Salary AS CHAR) END AS Salary FROM employee;
नोट: IF() सबसे सरल है जब मिश्रित प्रकार (संख्या/स्ट्रिंग) स्वीकार्य हों।