শর্তভিত্তি আউটপুট তৈরি করতে CASE WHEN (Searched CASE) ব্যবহার করা সবচেয়ে পঠনীয় এবং স্ট্যান্ডার্ড পদ্ধতি।
টেবিল ও ডেটা তৈরি
mysql> CREATE TABLE DemoTable1952 (Marks INT); mysql> INSERT INTO DemoTable1952 VALUES (35), (65), (55), (39);
ডেটা যাচাই
mysql> SELECT * FROM DemoTable1952;
+-------+ | Marks | +-------+ | 35 | | 65 | | 55 | | 39 | +-------+
CASE WHEN কোয়েরি
mysql> SELECT
CASE
WHEN Marks > 40 THEN 'Good Marks'
ELSE 'Not Good Marks'
END AS Result
FROM DemoTable1952;
আউটপুট:
+----------------+ | Result | +----------------+ | Not Good Marks | | Good Marks | | Good Marks | | Not Good Marks | +----------------+
CASE WHEN সিনট্যাক্স
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE result_default
END
- শর্তগুলো ক্রমানুসারে যাচাই হয়, প্রথম মেলায় থেমে যায়।
ELSEঅপশনাল — নথলে NULL রিটার্ন করে।
বহু-শর্ত উদাহরণ (Grade সিস্টেম)
SELECT Marks,
CASE
WHEN Marks >= 80 THEN 'A+'
WHEN Marks >= 70 THEN 'A'
WHEN Marks >= 60 THEN 'A-'
WHEN Marks >= 50 THEN 'B'
WHEN Marks >= 40 THEN 'C'
ELSE 'F'
END AS Grade
FROM DemoTable1952;
UPDATE-এ CASE ব্যবহার (আর্টিকেল ১০০৬০৭৫৪৭০-এ আছে)
আপডেটের সময়ও একই সিনট্যাক্স কাজ করে: SET col = CASE WHEN ... THEN ... ELSE ... END।
পারফরম্যান্স নোট
- CASE এক্সপ্রেশন ইন্ডেক্স ব্যবহার করে না।
- বড় টেবিলে ফিল্টারিং (WHERE) আগে করুন, তারপর CASE অ্যাপ্লাই করুন।
- MySQL 8.0+ এ
CASE WHEN ... THEN ... ENDঅপ্টিমাইজার দিয়ে কিছুটা অপ্টিমাইজ হয়।