فصل هجدهم :
Case Expression
جهت ارزیابی شروط گوناگون و باز گرداندن یک یا چند عبارت نتیجه :
عبارت case دارای دو فرمت است .
Simple case expression
فرمت ساده که یک عبارت را با یک سری عبارات ساده مقایسه میکند تا نتیجه را مشخص کند.
CASE input_expression
WHEN when_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
END
مثلا : می خواهیم اگر دانش اموز ورزش رزمی را بعنوان دوره های گزرانده طی کرده بود در فیلدی به نام رشته برای وی ذکر شود ‘رزمی کار’ و همچنین برای فوتبال ذکر شود ورزش با توپ و برای پینگ پنگ ورزش با راکت و سایر مقدیر بصورت سایر رشته ها .
select [FirstName],[LastName],Reshteh=
case [TrainingCourses]
when N'ورزش رزمی' then 'رزمی کار'
when N'فوتبال' then 'ورزش با توپ'
when N'پینگ پنگ' then 'ورزش با راکت'
elese 'سایر رشته ها'
end
from [dbo].[Student]
Searched Case expression
در حالتی که عبارت case تعدادی عبارت boolean را ارزیابی میکند
CASE
WHEN Boolean_expression THEN result_expression [ ...n ]
[ ELSE else_result_expression ]
در این روش مقداری که بجای مقدار یک فیلد باز میگزدد بر اساس یک سرس مقایسه و عبارات منطقی می باشد
select [FirstName],[LastName],GorooheSeni=
case
when age<11 then 'کودک'
when age=11 then 'یازده ساله'
when age>11 and age<13 then 'نوجوان'
else 'جوان'
end
from [dbo].[Student]
مثال در دیتابیس pubs اگر قیمت کتابی بیشتر از 18 دلاربود 3 درصد قیمت نمایش داده شده آنرا افزایش دهیم و اگر کمتر از 18 دلار بود 1.5 درصد قیمت افزایش یابد.
use pubs
SELECT title,CASE
WHEN price > 18 THEN price*1.3
ELSE price*1.15 END
As newprice
FROM Titles
بسیاری از مفاهیم درفیلم اموزشی بطور مفصل شرح داده شده اند . لذا حتما فیلم آموزشی این فصل را ببینید .
مفاهیم و موضوعات این فصل عبارتند از :
-
Case Expression
-
Simple case expression
-
Searched Case expression