×

Case Expression در SQL Server

فصل هجدهم :

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

vatantop
نظرات و سوالات درج سوال/ نظر