MySQL-এ একাধিক কলাম থেকে সর্বোচ্চ মান বের করার সময় NULL ভ্যালু হ্যান্ডল করতে COALESCE() এবং GREATEST() ফাংশন কম্বাইন করে ব্যবহার করা হয়।
টেবিল এবং ডেটা
CREATE TABLE DemoTable (
Value1 INT,
Value2 INT,
Value3 INT
);
INSERT INTO DemoTable VALUES(NULL, 80, 76);
INSERT INTO DemoTable VALUES(NULL, NULL, 100);
INSERT INTO DemoTable VALUES(56, NULL, 45);
INSERT INTO DemoTable VALUES(56, 120, 90);
কুয়েরি
SELECT GREATEST(
COALESCE(Value1, 0),
COALESCE(Value2, 0),
COALESCE(Value3, 0)
) FROM DemoTable;
ফলাফল
+--------------------------------------------------------------------+
| greatest(coalesce(Value1,0),coalesce(Value2,0),coalesce(Value3,0)) |
+--------------------------------------------------------------------+
| 80 |
| 100 |
| 56 |
| 120 |
+--------------------------------------------------------------------+
ফাংশন ব্যাখ্যা
COALESCE(val, 0)— NULL হলে ০ রিটার্ন করে, নন-নাল হলে নিজের মানGREATEST(v1, v2, v3)— আর্গুমেন্টগুলোর মধ্যে সর্বোচ্চ মান রিটার্ন করে- NULL কে ০ ধরে নেওয়া হয়েছে; নেগেটিভ ভ্যালু থাকলে ০ এর পরিবর্তে নেগেটিভ ইনফিনিটি বা নেগেটিভ বড় সংখ্যা ব্যবহার করুন
সতর্কতা
সকল মান NULL হলে GREATEST NULL রিটার্ন করে। COALESCE দিয়ে ডিফল্ট দিয়ে এড়ানো যায়।