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

آنچه در ادامه میخوانید:


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

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

يك كوئري بنويسيد كه كه كالا ها را بر اساس قيمت دسته بندي كند، به اين صورت كه اگر قيمت كالا كمتر از 10 بود در دسته “ارزان”، اگر قيمت كالا بين 10 و 50 بود در دسته “متوسط” و اگر بيشتر از 50 بود در دسته “گران” قرار بگيرد.

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 فقط يك مقدار مي تواند باشد.

مثال بعدي:

يك كوئري بنويسيد كه كه كارمندان را بر اساس سن آن ها دسته بندي كند، به اين صورت كه اگر سن كمتر از 40 سال باشد در دسته “جوان”، اگر سن بين 40 تا 60 باشد در دسته “ميانسال” و اگر سن بيشتر 60 باشد در دسته “مسن” قرار بگيرند.

‘سن’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

امتیاز این مقاله

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

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

مقالات مرتبط