جهت مشاهده نتایج و تست کوئری ها از ادیتور آنلاین استفاده کنید (کلیک کنید).

CASE STATEMENT دستور

  • دستور CASE از بین شرط های مختلفی که تعریف میشود یکی یکی نتیجه را تست میکند تا به اولین شرطی برسد که نتیجه آن True است و درنهایت دستور مربوط به آن شرط را اجرا میکند.
  • معمولا در انتهای عبارت بعد از تعریف شروط یک عبارت ELSE نیز آورده میشود تا درصورتیکه هیچ یک از شروط صادق نبودند آن عبارت اجرا شود.
  • دقت کنید که استفاده از ELSE اجباری نیست و اگر از ELSE استفاده نشود و هیچ یک از شروط نیز برقرار نباشند مقدار NULL بازگردانده میشود.
  • نحوه استفاده از دستور CASE:

CASE     WHEN condition1 THEN result1     WHEN condition2 THEN result2     WHEN conditionN THEN resultN     ELSE result END

مثال:

  • در مثال پیش رو از جدول OrderDetails بررسی میشود که در ستون Quantity:
  1. آیا مقدار درج شده در این ستون بیش از ۳۰ مورد است؟ اگر جواب مثبت باشد مقدار ‘The quantity is greater than 30’ چاپ میشود و اگر جواب منفی باشد شرط دوم بررسی میشود.
  2. در شرط دوم بررسی میشود که آیا تعداد درج شده در ستون Quantity برابر با ۳۰ مورد است؟ اگر جواب مثبت باشد مقدار ‘The quantity is 30’ چاپ میشود ولی اگر جواب منفی باشد وارد دستور ELSE میشود.
  3. در ELSE نتیجه ‘The quantity is under 30’ چاپ میشود.

در نهایت هر نتیجه ای که به عنوان خروجی برگردانده شود در ستونی به نام QuantityText در جدول OrderDetails چاپ میشود.

SELECT OrderID, Quantity, CASE WHEN Quantity > 30 THEN ‘The quantity is greater than 30’ WHEN Quantity = 30 THEN ‘The quantity is 30’ ELSE ‘The quantity is under 30’ END AS QuantityText FROM OrderDetail
مثال:
  • در این مثال نیز CustomerName, City, CustomerID از جدول Customers واکشی میشوند و درنهایت برای مرتب سازی دیتای واکشی شده شرط بررسی میشود:
  1. اگر City دارای مقدار NULL باشد آنگاه براساس CustomerID مرتب سازی انجام خواهد شد در غیر اینصورت وارد شرط ELSE میشود.
  2. در شرط ELSE نیز مرتب سازی براساس City انجام میشود.
SELECT CustomerName, City, CustomerID FROM Customers ORDER BY (CASE     WHEN City IS NULL THEN CustomerID     ELSE City END)

آموزش SQL

Scroll to Top