কম্পিউটার টিউটোরিয়াল

MySQL-এ কলাম ভ্যালু অনুযায়ী শর্তসাপেক্ষ গুণফল (CASE WHEN)

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)ও ব্যবহার করা যায়।

  1. MySQL-এ DISTINCT, ORDER BY DESC, LIMIT OFFSET ব্যবহার করে Nth সর্বোচ্চ মান বের করুন

  2. MySQL-এ GROUP BY HAVING এবং IN() ব্যবহার করে একাধিক শর্ত পূরণকারী সারি বের করা

  3. MySQL-এ IF() এবং টাইমস্ট্যাম্প ব্যবহার করে ২ বছরের বেশি পুরনো রেকর্ডকে বুলিয়ান ফ্ল্যাগে রূপান্তর করা

  4. MySQL-এ ভ্যালু ০ হলে অন্য কলাম থেকে ডেটা সিলেক্ট করা