COALESCE() फंक्शन का व्यवहार NULL और NON-NULL मानों के साथ
COALESCE() फंक्शन अपने आर्गुमेंट्स में से पहला NON-NULL मान लौटाता है। यह बाएं से दाएं जांचता है और पहला नॉन-NULL मान मिलते ही लौटाता है।
आइए पहले एक टेबल बनाते हैं:
mysql> CREATE TABLE DemoTable (
Number1 INT,
Number2 INT
);
रिकॉर्ड्स इन्सर्ट करें (NULL मानों सहित):
mysql> INSERT INTO DemoTable VALUES (100, 200); mysql> INSERT INTO DemoTable VALUES (NULL, 50); mysql> INSERT INTO DemoTable VALUES (10, NULL); mysql> INSERT INTO DemoTable VALUES (NULL, NULL);
सभी रिकॉर्ड्स देखें:
mysql> SELECT * FROM DemoTable;
आउटपुट:
+---------+---------+ | Number1 | Number2 | +---------+---------+ | 100 | 200 | | NULL | 50 | | 10 | NULL | | NULL | NULL | +---------+---------+
COALESCE के साथ पहला नॉन-NULL आर्गुमेंट प्राप्त करें:
mysql> SELECT COALESCE(Number1, Number2) AS NON_NULL_ARGUMENT_FIRST
FROM DemoTable;
आउटपुट:
+-------------------------+ | NON_NULL_ARGUMENT_FIRST | +-------------------------+ | 100 | | 50 | | 10 | | NULL | +-------------------------+
व्याख्या:
| Number1 | Number2 | COALESCE(Number1, Number2) | कारण |
|---|---|---|---|
| 100 | 200 | 100 | Number1 नॉन-NULL है, पहला आर्गुमेंट लौटाया |
| NULL | 50 | 50 | Number1 NULL है, Number2 नॉन-NULL है, दूसरा आर्गुमेंट लौटाया |
| 10 | NULL | 10 | Number1 नॉन-NULL है, पहला आर्गुमेंट लौटाया |
| NULL | NULL | NULL | सभी आर्गुमेंट्स NULL हैं, NULL लौटाया |
व्यावहारिक उपयोग:
-- डिफॉल्ट मान प्रदान करना SELECT COALESCE(phone, email, 'No Contact') AS contact_info FROM users; -- NULL को 0 से बदलना गणना के लिए SELECT COALESCE(discount, 0) * price FROM products;
IFNULL vs COALESCE: IFNULL केवल दो आर्गुमेंट लेता है (MySQL-विशिष्ट), COALESCE कई आर्गुमेंट लेता है (SQL मानक)।