MySQL-এ শর্তসাপেক্ষে গাণিতিক অপারেশন করতে CASE স্টেটমেন্ট ব্যবহার করা হয়। এটি IF THEN ELSE-এর বিকল্প এবং আরও শক্তিশালী।
টেবিল তৈরি এবং ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable (
-> Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> FruitName VARCHAR(100),
-> FruitPrice INT
-> );
mysql> INSERT INTO DemoTable(FruitName, FruitPrice) VALUES('Orange', 250);
mysql> INSERT INTO DemoTable(FruitName, FruitPrice) VALUES('Banana', 100);
mysql> INSERT INTO DemoTable(FruitName, FruitPrice) VALUES('Apple', 150);
mysql> INSERT INTO DemoTable(FruitName, FruitPrice) VALUES('Pomegranate', 200);
সব রেকর্ড দেখুন
mysql> SELECT * FROM DemoTable;
+----+-------------+------------+
| Id | FruitName | FruitPrice |
+----+-------------+------------+
| 1 | Orange | 250 |
| 2 | Banana | 100 |
| 3 | Apple | 150 |
| 4 | Pomegranate | 200 |
+----+-------------+------------+
CASE দিয়ে শর্তসাপেক্ষ ক্যালকুলেশন
যদি ফল Orange হয়, দাম ৫ দিয়ে ভাগ করুন, অন্যথায় মূল দাম দেখান:
mysql> SELECT Id, FruitName, FruitPrice,
-> CASE
-> WHEN FruitName = 'Orange' THEN FruitPrice / 5
-> ELSE FruitPrice
-> END AS OriginalPrice
-> FROM DemoTable;
ফলাফল
+----+-------------+------------+---------------+
| Id | FruitName | FruitPrice | OriginalPrice |
+----+-------------+------------+---------------+
| 1 | Orange | 250 | 50.00 |
| 2 | Banana | 100 | 100 |
| 3 | Apple | 150 | 150 |
| 4 | Pomegranate | 200 | 200 |
+----+-------------+------------+---------------+
ব্যাখ্যা: শুধু Orange-এর দাম ২৫০/৫ = ৫০ হয়েছে। বাকি ফলগুলোর দাম অপরিবর্তিত রয়েছে।
বিস্তৃত CASE সিনট্যাক্স:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END