آموزش استفاده از SQL Case

learn sql case
20 آبان 1403

SQL Case یکی از قدرتمندترین ابزارهایی است که در زبان SQL برای انجام شرطی‌سازی داده‌ها در کوئری‌ها استفاده می‌شود. به زبان ساده، SQL Case به شما امکان می‌دهد تا بر اساس شرایط مشخص، مقادیر یا کدهای مختلف را در خط برگشتی کوئری اعمال کنید. این قابلیت بسیار مفید است زمانی که شما نیاز دارید تا بر اساس مقادیر موجود در دیتا، خروجی‌های مختلف را بازگردانید.

آنچه که SQL Case را واقعا مفید می‌کند، توانایی آن در مدیریت شرایط پیچیده در ساختارهای ساده SQL است. این به شما کمک می‌کند تا منطق شرطی را بدون نیاز به تغییر ساختار اصلی کوئری پیاده‌سازی کنید. همچنین، Case می‌تواند به عنوان یک جایگزین برای توابع پیچیده‌تر در برخی موارد عمل کند.

بیایید نگاهی بیندازیم به یک مثال از SQL Case. فرض کنید شما می‌خواهید مقدار «بله» را برگردانید اگر قیمت محصولات شما بالای ۱۰۰ دلار باشد و «خیر» اگر کمتر یا برابر ۱۰۰ دلار باشد. SQL Case این امکان را فراهم می‌کند که چنین شرط‌بندی را به سادگی انجام دهید.

SQL Case نه تنها در انتخاب داده‌ها مفید است، بلکه یک ابزار بسیار قوی برای تجزیه و تحلیل داده‌ها به شمار می‌رود. شما می‌توانید از آن برای دسته‌بندی داده‌ها، ایجاد گزارشات شخصی‌سازی شده، و حتی پردازش داده بر اساس نیازهای خاص استفاده کنید.

نحوه استفاده از SQL Case

در اکثر محیط‌های بانک اطلاعاتی مدرن، استفاده از SQL Case بسیار ساده است. به طور کلی شما باید یک سری شروط را به همراه Case تعریف کرده و سپس نتیجه دلخواهتان را در صورت صحیح بودن شروط بیان کنید.


SELECT product_name,
price,
CASE
WHEN price > 100 THEN 'بله'
ELSE 'خیر'
END AS is_expensive
FROM products;

توضیح کد

SELECT product_name,
این خط برای انتخاب نام محصول از جدول استفاده می‌شود.

price,
این خط ستون قیمت را به عنوان بخشی از خروجی کوئری انتخاب می‌کند.

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

WHEN price > 100 THEN 'بله'
این خط شرایطی را چک می‌کند؛ اگر قیمت بیشتر از ۱۰۰ باشد، مقدار 'بله' برگردانده می‌شود.

ELSE 'خیر'
اگر هیچ کدام از شرایط قبل معتبر نباشد، در اینجا مقدار 'خیر' برگردانده می‌شود.

END AS is_expensive
با استفاده از این خط، نتیجه نهایی تحت عنوان «is_expensive» در خروجی قرار می‌گیرد.

FROM products;
این خط تعیین می‌کند که داده‌ها از کدام جدول استخراج شوند.

سوالات متداول

؟

چطور می‌توانم با استفاده از SQL Case مقادیر مختلف را در یک کوئری برگردانم؟

؟

چه وقت باید از SQL Case استفاده کنم؟