CASE স্টেটমেন্ট এর ব্যবহার

T-SQL এর কন্ডিশনাল লজিক - টি-এসকিউএল (T-SQL) - Database Tutorials

371

SQL CASE স্টেটমেন্ট একটি শর্তাবলী বা কন্ডিশনাল লজিক প্রদান করে, যা SQL কুয়েরি বা স্টোরড প্রসিডিউরের মধ্যে শর্ত অনুযায়ী মান নির্ধারণ করতে ব্যবহৃত হয়। এটি IF...ELSE লজিকের মতো কাজ করে, তবে SQL এর মধ্যে এটি ব্যবহার করা হয়।

CASE স্টেটমেন্ট দুটি প্রকারে ব্যবহৃত হতে পারে:

  1. Simple CASE Expression: এক বা একাধিক মানের মধ্যে শর্ত পরীক্ষা করা।
  2. Searched CASE Expression: এক বা একাধিক শর্ত অনুযায়ী মান নির্বাচন করা।

১. Simple CASE Expression

এটি ব্যবহার করা হয় যখন আপনি একটি কলামের মানের ভিত্তিতে অন্য একটি মান নির্ধারণ করতে চান। এই ক্ষেত্রে, আপনার কাছে একটি নির্দিষ্ট কলামের মান থাকবে, এবং আপনি সেই মানের জন্য একটি শর্ত নির্ধারণ করবেন।

সিনট্যাক্স:

CASE column_name
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ...
    ELSE result_default
END

উদাহরণ:

ধরা যাক, একটি Students টেবিল আছে যেখানে ছাত্রদের Grade (A, B, C, D) আছে এবং আমরা তাদের জন্য মান নির্ধারণ করতে চাই। উদাহরণস্বরূপ:

SELECT Name,
       Grade,
       CASE Grade
           WHEN 'A' THEN 'Excellent'
           WHEN 'B' THEN 'Good'
           WHEN 'C' THEN 'Average'
           ELSE 'Needs Improvement'
       END AS Performance
FROM Students;

এখানে:

  • Grade কলামের মানের ভিত্তিতে Performance কলামে ফলাফল দেওয়া হবে।
    • যদি Grade 'A' হয়, তাহলে Performance হবে 'Excellent'
    • যদি Grade 'B' হয়, তাহলে Performance হবে 'Good'
    • অন্যান্য মানের জন্য 'Needs Improvement' দেখাবে।

২. Searched CASE Expression

এটি তখন ব্যবহার করা হয় যখন আপনি একাধিক শর্ত পরীক্ষা করতে চান এবং প্রতিটি শর্তের জন্য নির্দিষ্ট ফলাফল ফেরত দিতে চান।

সিনট্যাক্স:

CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE result_default
END

উদাহরণ:

ধরা যাক, আপনি ছাত্রদের Age এবং Score পরীক্ষা করে তাদের ফলাফল নির্ধারণ করতে চান। উদাহরণস্বরূপ:

SELECT Name, Age, Score,
       CASE
           WHEN Age >= 18 AND Score >= 50 THEN 'Pass'
           WHEN Age >= 18 AND Score < 50 THEN 'Fail'
           WHEN Age < 18 AND Score >= 50 THEN 'Underage Pass'
           ELSE 'Underage Fail'
       END AS Result
FROM Students;

এখানে:

  • আমরা Age এবং Score কলামগুলির শর্ত অনুসারে ছাত্রদের ফলাফল নির্ধারণ করছি:
    • যদি Age >= 18 এবং Score >= 50 হয়, তাহলে Result হবে 'Pass'
    • যদি Age >= 18 এবং Score < 50 হয়, তাহলে Result হবে 'Fail'
    • যদি Age < 18 এবং Score >= 50 হয়, তাহলে Result হবে 'Underage Pass'
    • অন্যথায়, 'Underage Fail' দেখাবে।

৩. CASE এর ব্যবহার GROUP BY এর সাথে

CASE স্টেটমেন্ট সাধারণত GROUP BY এর সাথে ব্যবহার করা যায়, যাতে আপনি শর্তাবলী অনুসারে গ্রুপিং বা এগ্রিগেশন করতে পারেন।

উদাহরণ:

ধরা যাক, আপনার Orders টেবিল আছে যেখানে অর্ডারের Amount এবং Status রয়েছে, এবং আপনি অর্ডারের পরিমাণের ভিত্তিতে মোট বিক্রয়ের হিসাব করতে চান:

SELECT 
    CASE
        WHEN Amount > 1000 THEN 'High Value'
        WHEN Amount BETWEEN 500 AND 1000 THEN 'Medium Value'
        ELSE 'Low Value'
    END AS OrderValue,
    SUM(Amount) AS TotalSales
FROM Orders
GROUP BY
    CASE
        WHEN Amount > 1000 THEN 'High Value'
        WHEN Amount BETWEEN 500 AND 1000 THEN 'Medium Value'
        ELSE 'Low Value'
    END;

এখানে:

  • আমরা Amount অনুসারে অর্ডারগুলিকে 'High Value', 'Medium Value', এবং 'Low Value' হিসাবে শ্রেণীবদ্ধ করছি এবং প্রতিটি শ্রেণীভুক্ত মানের জন্য মোট বিক্রয় (TotalSales) গণনা করছি।

৪. CASE স্টেটমেন্টে NULL মান ব্যবহার

CASE স্টেটমেন্টে NULL মানও পরীক্ষিত হতে পারে, যাতে আপনি NULL মানের জন্য আলাদা ফলাফল প্রদান করতে পারেন।

উদাহরণ:

SELECT Name,
       Age,
       CASE
           WHEN Age IS NULL THEN 'Age not provided'
           WHEN Age < 18 THEN 'Minor'
           ELSE 'Adult'
       END AS AgeStatus
FROM Students;

এখানে:

  • যদি Age কলামে মান না থাকে (NULL), তাহলে 'Age not provided' দেখাবে।
  • যদি Age 18 বছরের কম হয়, তাহলে 'Minor' দেখাবে।
  • অন্যথায়, 'Adult' দেখাবে।

সারাংশ

SQL CASE স্টেটমেন্ট একটি শর্তাবলী বা কন্ডিশনাল লজিক যা SQL কোডে শর্ত অনুযায়ী মান নির্ধারণ করতে ব্যবহৃত হয়। এটি Simple CASE এবং Searched CASE দুইভাবে ব্যবহৃত হতে পারে:

  • Simple CASE: একটি কলামের মানের ভিত্তিতে শর্ত পরীক্ষা।
  • Searched CASE: একাধিক শর্ত পরীক্ষা এবং নির্দিষ্ট ফলাফল প্রদান।

CASE স্টেটমেন্টটি শর্তের ভিত্তিতে ফলাফল নির্ধারণ করতে সহায়তা করে এবং এটি SQL কুয়েরি, স্টোরড প্রসিডিউর, এবং ফাংশনে ব্যাপকভাবে ব্যবহৃত হয়।

Content added By
Promotion

Are you sure to start over?

Loading...