27 دسامبر 2017 آموزش کاربردی0 نظر
آموزش دستور CASE در SQL

آموزش دستور 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

 

0 پاسخ

پاسخ دهید

میخواهید به بحث بپیوندید؟
مشارکت رایگان.

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

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