آموزش دستور CASE در SQL

آموزش دستور CASE در SQL Server

در این جلسه از آموزش های SQL میخواهیم در ارتباط با دستور CASE با شما صحبت کنیم. دستور CASE مانند IF/ELSE می باشد.

case  یک عبارت را به عنوان ورودی می گیرد و سپس آن را با همه ی مقادیر موجود در عبارت  when  مقایسه می کند.خروجی هر عبارت با then تولیدمی شود. عبارت  else  نیز در مواقعی به کار می رود که داده ی ورودی با هیچ یک از داده ها ی موجود در when منطبق نباشد. برای آشنایی بیشتر به مثال های زیر توجه کنید:

یک کوئری بنویسید که که کالا ها را بر اساس قیمت دسته بندی کند، به این صورت که اگر قیمت کالا کمتر از ۱۰ بود در دسته “ارزان”، اگر قیمت کالا بین ۱۰ و ۵۰ بود در دسته “متوسط” و اگر بیشتر از ۵۰ بود در دسته “گران” قرار بگیرد.

SELECT PRODUCTID,PRODUCTNAME,UNITPRICE, CASE

‘ارزان’ when unitprice<10 then N

‘متوسط’when unitprice>=10 and unitprice<=50 then N

‘گران’when unitprice<50 then N

‘غیرممکن’else

end as pricerange

نکات:

  • هر CASE با یک end پایان می یابد.
  • اگر یک کوئری در شرط ها با هم همپوشانی داشته باشند، اولین شرط خوانده می شود.
  • جلوی then فقط یک مقدار می تواند باشد.

مثال بعدی:

یک کوئری بنویسید که که کارمندان را بر اساس سن آن ها دسته بندی کند، به این صورت که اگر سن کمتر از ۴۰ سال باشد در دسته “جوان”، اگر سن بین ۴۰ تا ۶۰ باشد در دسته “میانسال” و اگر سن بیشتر ۶۰ باشد در دسته “مسن” قرار بگیرند.

 

‘سن’SELECT EMPLOYEEID, FIRSTNAME,LASTNAME,DATEDIFF(YEAR,BIRTHDATE,GETDATE()) AS N

‘جوان’WHEN DATEDIFF(YEAR,BIRTHDATE,GETDATE()) <40 THEN N

‘میانسال’WHEN DATEDIFF(YEAR,BIRTHDATE,GETDATE()) BETWEEN 40 AND 60 THEN N

‘مسن’WHEN DATEDIFF(YEAR,BIRTHDATE,GETDATE()) >60 THEN N

END

AS AGERANGE

 

0 پاسخ

دیدگاه خود را ثبت کنید

میخواهید به بحث بپیوندید؟
احساس رایگان برای کمک!

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

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