PL/SQL-এ CASE স্টেটমেন্ট একটি শর্তগত (conditional) স্টেটমেন্ট, যা একাধিক শর্ত পরীক্ষা করে এবং নির্দিষ্ট শর্ত পূর্ণ হলে নির্ধারিত মান বা এক্সপ্রেশন রিটার্ন করে। এটি IF-ELSE স্টেটমেন্টের মতো কাজ করে, তবে এর কাঠামোটি একটু ভিন্ন এবং অনেক বেশি পরিষ্কার এবং সোজা।
CASE স্টেটমেন্টের ধরন
PL/SQL-এ CASE স্টেটমেন্ট দুটি প্রধান ধরনের হয়ে থাকে:
- Simple CASE Expression
- searched CASE Expression
১. Simple CASE Expression
এই ধরনের CASE স্টেটমেন্টে একক মানের ভিত্তিতে একাধিক শর্ত পরীক্ষা করা হয়। অর্থাৎ, আপনি একটি নির্দিষ্ট এক্সপ্রেশন বা ভ্যালু দিয়ে শুরু করেন এবং এটি বিভিন্ন মানের সঙ্গে তুলনা করা হয়।
Syntax:
CASE expression
WHEN value1 THEN
-- Code to execute if expression = value1
WHEN value2 THEN
-- Code to execute if expression = value2
...
ELSE
-- Code to execute if expression doesn't match any value
END CASE;
উদাহরণ:
DECLARE
v_grade CHAR(1);
BEGIN
v_grade := 'A';
CASE v_grade
WHEN 'A' THEN
DBMS_OUTPUT.PUT_LINE('Excellent');
WHEN 'B' THEN
DBMS_OUTPUT.PUT_LINE('Good');
WHEN 'C' THEN
DBMS_OUTPUT.PUT_LINE('Average');
WHEN 'D' THEN
DBMS_OUTPUT.PUT_LINE('Poor');
ELSE
DBMS_OUTPUT.PUT_LINE('Invalid Grade');
END CASE;
END;
Output:
Excellent
২. Searched CASE Expression
এই ধরনের CASE স্টেটমেন্টে, একাধিক শর্তের ভিত্তিতে কোন একটি শর্ত পূর্ণ হলে কোড এক্সিকিউট করা হয়। এখানে WHEN ক্লজের মধ্যে শর্ত (condition) দেওয়া হয় এবং সেটা সত্য হলে সাপেক্ষ কোড এক্সিকিউট করা হয়।
Syntax:
CASE
WHEN condition1 THEN
-- Code to execute if condition1 is TRUE
WHEN condition2 THEN
-- Code to execute if condition2 is TRUE
...
ELSE
-- Code to execute if no conditions are TRUE
END CASE;
উদাহরণ:
DECLARE
v_marks NUMBER := 75;
BEGIN
CASE
WHEN v_marks >= 90 THEN
DBMS_OUTPUT.PUT_LINE('Grade A');
WHEN v_marks >= 75 THEN
DBMS_OUTPUT.PUT_LINE('Grade B');
WHEN v_marks >= 50 THEN
DBMS_OUTPUT.PUT_LINE('Grade C');
ELSE
DBMS_OUTPUT.PUT_LINE('Fail');
END CASE;
END;
Output:
Grade B
CASE স্টেটমেন্টের ব্যবহার
- Multiple Conditions Check: যখন একাধিক শর্ত পরীক্ষা করার প্রয়োজন হয়, তখন CASE স্টেটমেন্ট খুবই কার্যকরী। এটি একাধিক
IF-ELSEশর্তের তুলনায় অনেক বেশি পরিষ্কার ও সহজ করে। - Query with CASE: SQL কুয়েরিতে CASE ব্যবহার করে আপনি ডেটাবেস থেকে ভ্যালু রিটার্ন করতে পারেন, যেমনঃ কোনও কলামের মান অনুযায়ী আলাদা ফলাফল দেখানো।
SQL Query Example:
SELECT employee_id, salary,
CASE
WHEN salary > 10000 THEN 'High'
WHEN salary BETWEEN 5000 AND 10000 THEN 'Medium'
ELSE 'Low'
END AS salary_grade
FROM employees;
এই কুয়েরি salary-এর মানের উপর ভিত্তি করে একটি নতুন salary_grade কলাম তৈরি করবে, যা প্রত্যেক কর্মচারীর বেতন অনুযায়ী High, Medium, অথবা Low মান রিটার্ন করবে।
শেষ কথা
CASE স্টেটমেন্ট PL/SQL-এ একটি শক্তিশালী টুল, যা শর্তের উপর ভিত্তি করে লজিক্যাল এক্সপ্রেশন নির্ধারণ করতে ব্যবহৃত হয়। এটি কোডের পড়তে সহজ এবং প্রোগ্রামিংয়ের জটিলতা কমাতে সাহায্য করে। Simple এবং Searched ধরনের মধ্যে থেকে যে কোনও একটির ব্যবহার আপনার পরিস্থিতি অনুযায়ী সঠিক হতে পারে।
Read more