MySQL में एकाधिक कॉलम से प्रति पंक्ति अधिकतम मान प्राप्त करने के लिए GREATEST() के साथ COALESCE() का उपयोग करें। COALESCE NULL को डिफ़ॉल्ट मान (जैसे 0) में बदलता है।
फ़ंक्शन
COALESCE(val, default)- पहला गैर-NULL मान लौटाता हैGREATEST(val1, val2, ...)- सबसे बड़ा मान लौटाता है
उदाहरण
तालिका बनाएं और डेटा डालें:
mysql> CREATE TABLE DemoTable (Value1 INT, Value2 INT, Value3 INT);
mysql> INSERT INTO DemoTable VALUES
-> (NULL, 80, 76),
-> (NULL, NULL, 100),
-> (56, NULL, 45),
-> (56, 120, 90);
डेटा
+--------+--------+--------+
| Value1 | Value2 | Value3 |
+--------+--------+--------+
| NULL | 80 | 76 |
| NULL | NULL | 100 |
| 56 | NULL | 45 |
| 56 | 120 | 90 |
+--------+--------+--------+
क्वेरी
mysql> SELECT GREATEST(
-> COALESCE(Value1, 0),
-> COALESCE(Value2, 0),
-> COALESCE(Value3, 0)
-> ) FROM DemoTable;
परिणाम
+-------+
| 80 |
| 100 |
| 56 |
| 120 |
+-------+
पंक्ति-दर-पंक्ति व्याख्या
GREATEST(0, 80, 76)= 80GREATEST(0, 0, 100)= 100GREATEST(56, 0, 45)= 56GREATEST(56, 120, 90)= 120
विकल्प
यदि सभी मान NULL हैं तो NULL चाहते हैं:
SELECT GREATEST(Value1, Value2, Value3) FROM DemoTable;
-- परिणाम: 80, 100, NULL, 120 (तीसरी पंक्ति NULL लौटाएगी)
नोट: GREATEST किसी भी तर्क के NULL होने पर NULL लौटाता है, इसलिए COALESCE आवश्यक है।