SQL

SQL CASE – ELSE

توضیح جامع برای عبارت CASE در SQL

عبارت CASE در SQL یک ابزار قدرتمند برای دسته‌بندی داده‌ها و اعمال منطق شرطی بر روی آنها است. این عبارت به شما امکان می‌دهد مقادیر مختلف را بر اساس شرایط مختلف ارزیابی و بازگشت کنید.

ساختار کلی:

SQL
CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ...
    ELSE resultN
END

اجزاء:

  • CASE: کلمه‌کلیدی که شروع عبارت CASE را نشان می‌دهد.
  • WHEN: کلمه‌کلیدی که شرط را معرفی می‌کند.
  • condition: عبارتی که صحت یا عدم صحت آن بررسی می‌شود.
  • THEN: کلمه‌کلیدی که نتیجه مربوط به شرط را معرفی می‌کند.
  • result: مقداری که در صورت برقراری شرط بازگردانده می‌شود.
  • ELSE: کلمه‌کلیدی که نتیجه‌ی پیش‌فرض را در صورت عدم برقراری هیچ کدام از شرط‌ها معرفی می‌کند.
  • END: کلمه‌کلیدی که پایان عبارت CASE را نشان می‌دهد.

مثال‌های کاربردی:

۱. دسته‌بندی سنی:

فرض کنید می‌خواهید در یک جدول customers، سنی که هر مشتری در آن قرار می‌گیرد را دسته‌بندی کنید:

SQL
SELECT customer_id, name, age,
    CASE
        WHEN age < ۱۸ THEN 'کودک'
        WHEN age BETWEEN ۱۸ AND ۳۰ THEN 'جوان'
        WHEN age BETWEEN ۳۱ AND ۵۰ THEN 'میانسال'
        ELSE 'سالمند'
    END AS age_group
FROM customers;

در این مثال، برای هر مشتری، ستون جدیدی به نام age_group ایجاد می‌شود که سن او را در یکی از گروه‌های “کودک”، “جوان”، “میانسال” یا “سالمند” دسته‌بندی می‌کند.

۲. محاسبه امتیاز امتحان:

فرض کنید می‌خواهید در یک جدول students، بر اساس نمره امتحان هر دانش‌آموز، نمره قبولی او را تعیین کنید:

SQL
SELECT student_id, name, score,
    CASE
        WHEN score >= ۹۰ THEN 'A'
        WHEN score >= ۸۰ THEN 'B'
        WHEN score >= ۷۰ THEN 'C'
        WHEN score >= ۶۰ THEN 'D'
        ELSE 'F'
    END AS grade
FROM students;

در این مثال، برای هر دانش‌آموز، ستون جدیدی به نام grade ایجاد می‌شود که نمره قبولی او را بر اساس نمره امتحانش نشان می‌دهد.

۳. جایگزینی مقادیر null:

فرض کنید می‌خواهید مقادیر null در یک ستون را با یک مقدار پیش‌فرض جایگزین کنید:

SQL
SELECT product_id, name, price,
    CASE WHEN price IS NULL THEN ۰ ELSE price END AS updated_price
FROM products;

در این مثال، برای هر محصول، ستون جدیدی به نام updated_price ایجاد می‌شود که قیمت آن محصول را با جایگزینی مقادیر null با ۰ نشان می‌دهد.

نکات:

  • می‌توانید از چندین عبارت WHEN در یک عبارت CASE استفاده کنید.
  • استفاده از عبارت ELSE اختیاری است.
  • می‌توانید از توابع و عبارات پیچیده در داخل شرط‌ها و نتایج استفاده کنید.
  • عبارت CASE را می‌توان در داخل دستورات SELECT، WHERE، HAVING و ORDER BY استفاده کرد.

مزایای استفاده از عبارت CASE:

  • خوانایی و وضوح کد را افزایش می‌دهد.
  • منطق شرطی را به طور خلاصه و سازمان‌یافته در یک جا بیان می‌کند.
  • از نوشتن چندین عبارت IF-THEN-ELSE تودرتو جلوگیری می‌کند.

معایب استفاده از عبارت CASE:

  • می‌تواند در مواردی که تعداد زیادی شرط وجود دارد، پیچیده باشد.
  • در برخی از سیستم‌های مدیریت پایگاه داده، عملکرد کمی کندتر از عبارات IF-THEN-ELSE است.

منابع برای مطالعه بیشتر:

۵/۵ ( ۱ امتیاز )
نمایش بیشتر

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا