COALESCE() के साथ MAX() फ़ंक्शन का उपयोग
जब टेबल खाली हो या सभी मान NULL हों, तो MAX() फ़ंक्शन NULL लौटाता है। इसे रोकने के लिए COALESCE() फ़ंक्शन का उपयोग करें जो पहला नॉन-NULL मान लौटाता है।
सिंटैक्स
SELECT COALESCE(MAX(`yourColumnName`), 0) FROM yourTableName;
उदाहरण: टेबल बनाना और डेटा डालना
mysql> create table avoidNullDemo (
-> `rank` int
-> );
Query OK, 0 rows affected (0.53 sec)
mysql> insert into avoidNullDemo values(10); mysql> insert into avoidNullDemo values(NULL); mysql> insert into avoidNullDemo values(20); mysql> insert into avoidNullDemo values(NULL); mysql> insert into avoidNullDemo values(100); mysql> insert into avoidNullDemo values(NULL);
डेटा देखना
mysql> select * from avoidNullDemo;
आउटपुट (NULL मानों के साथ):
+------+ | rank | +------+ | 10 | | NULL | | 20 | | NULL | | 100 | | NULL | +------+ 6 rows in set (0.00 sec)
NULL परिणाम से बचने के लिए क्वेरी
mysql> select COALESCE(MAX(`rank`), 0) FROM avoidNullDemo;
आउटपुट:
+--------------------------+ | COALESCE(MAX(`rank`), 0) | +--------------------------+ | 100 | +--------------------------+ 1 row in set (0.00 sec)
खाली टेबल के साथ परीक्षण
सभी रिकॉर्ड हटाने के बाद:
mysql> truncate table avoidNullDemo; Query OK, 0 rows affected (0.92 sec)
mysql> select COALESCE(MAX(`rank`), 0) FROM avoidNullDemo;
आउटपुट:
+--------------------------+ | COALESCE(MAX(`rank`), 0) | +--------------------------+ | 0 | +--------------------------+ 1 row in set (0.00 sec)
मुख्य लाभ
- खाली टेबल या ऑल-NULL कॉलम के लिए डिफ़ॉल्ट मान (0) मिलता है
- एप्लिकेशन लेवल पर NULL चेक की आवश्यकता नहीं
- एग्रीगेशन क्वेरीज़ में विश्वसनीय परिणाम सुनिश्चित करता है