COALESCE() फंक्शन को UPDATE स्टेटमेंट में उपयोग करके NULL मानों को डिफ़ॉल्ट मान से बदल सकते हैं।
नमूना डेटा: Employee टेबल
mysql> SELECT * FROM Employee;
+----+--------+--------+
| ID | Name | Salary |
+----+--------+--------+
| 1 | Gaurav | 50000 |
| 2 | Rahul | 20000 |
| 3 | Advik | 25000 |
| 4 | Aarav | 65000 |
| 5 | Ram | NULL |
| 6 | Mohan | NULL |
+----+--------+--------+
अपडेट क्वेरीज़
mysql> UPDATE Employee
SET Salary = COALESCE(Salary, 20000)
WHERE Id = 5;
Query OK, 1 row affected (0.09 sec)
mysql> UPDATE Employee
SET Salary = COALESCE(Salary, 30000)
WHERE Id = 6;
Query OK, 1 row affected (0.06 sec)
परिणाम
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 |
+----+--------+--------+
व्याख्या
COALESCE(Salary, 20000)— यदि Salary NULL है तो 20000 उपयोग करें, अन्यथा मौजूदा Salary रखेंWHEREक्लॉज केवल विशिष्ट पंक्तियाँ लक्षित करता है- गैर-NULL मान अपरिवर्तित रहते हैं
बल्क अपडेट (सभी NULL एक साथ)
UPDATE Employee
SET Salary = COALESCE(Salary, 25000)
WHERE Salary IS NULL;
लाभ
- केस स्टेटमेंट से सरल:
CASE WHEN Salary IS NULL THEN 20000 ELSE Salary END - पठनीय और संक्षिप्त
- शॉर्ट-सर्किट: गैर-NULL पर दूसरा तर्क मूल्यांकित नहीं होता