MySQL-এ SELECT স্টেটমেন্টে কলাম ভ্যালুর উপর ভিত্তি করে শর্তসাপেক্ষ ক্যালকুলেশন (যেমন গুণফল) করতে CASE WHEN এক্সপ্রেশন ব্যবহার করা হয়।
টেবিল ও ডেটা
mysql> CREATE TABLE DemoTable (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value1 INT, Value2 INT
);
mysql> INSERT INTO DemoTable(Value1, Value2) VALUES (10,5), (20,0), (40,10), (50,0);
সকল ডেটা
+----+--------+--------+ | Id | Value1 | Value2 | +----+--------+--------+ | 1 | 10 | 5 | | 2 | 20 | 0 | | 3 | 40 | 10 | | 4 | 50 | 0 | +----+--------+--------+
Value2 > 0 হলে গুণফল, অন্যথায় ০
mysql> SELECT Value1, Value2,
CASE WHEN Value2 > 0 THEN Value1 * Value2 ELSE 0 END AS Multiplication
FROM DemoTable;
ফলাফল
+--------+--------+----------------+ | Value1 | Value2 | Multiplication | +--------+--------+----------------+ | 10 | 5 | 50 | | 20 | 0 | 0 | | 40 | 10 | 400 | | 50 | 0 | 0 | +--------+--------+----------------+
ব্যাখ্যা: CASE WHEN condition THEN result ELSE default END সিনট্যাক্সে শর্ত চেক করে ফলাফল রিটার্ন করে। এটি IF()-এর চেয়ে বেশি ফ্লেক্সিবল (একাধিক শর্ত যাচাই করা যায়)। CASE Value2 WHEN 0 THEN 0 ELSE Value1*Value2 END (সিম্পল CASE)ও ব্যবহার করা যায়।