آموزش کار با ساختار های دستور شرطی if case when در sql
در این بخش از آموزش کار با sql قصد داریم تا ساختارهای شرطی ( if , case , when ) در sql را بررسی و آموزش دهیم.
آموزش کار با ساختار دستور شرطی if else در sql :
ساده ترین دستور شرطی در sql دستور if است که دستور if بصورت زیر در sql تعریف میشود:
if دستور شرط
begin
if دستورات بدنه
end
else
begin
else دستورات بدنه
end
اگر دستورات بدنه دستور if یا else فقط یک دستور باشد نیاز به بلاک بندی begin , end نمیباشد.
(مثال1) دستور شرطی if در sql کد زیر را مشاهده کنید:
declare @a int=1,@str nvarchar(10)=''
if @a < 1 or @a > 4 set @str= 'Other'
if @a = 1 set @str= 'One'
if @a = 2 set @str= 'Two'
if @a = 3 set @str= 'Three'
print @str
در کد بالا فقط از یک دستور در هر بدنه از ساختار if استفاده شده است.
(مثال2) کد زیر چگونگی استفاده از دستور if else با چند دستور در شرط را در sql نشان میدهد:
declare @a int=1,@str nvarchar(10)=''
if @a = 0 set @str= 'Zero'
else
begin
set @str='Not Zero'
print @a
end
print @str
آموزش کار با ساختار دستور شرطی case when در sql :
دستور شرطی دیگر که در sql میتوان بجای دستور if از آن استفاده کرد دستور case when در sql میباشد.
ساختار کلی استفاده از دستور case when در sql بصورت زیر است:
case متغیر یا عبارت
when 1مقدار then 1مقدار دلخواه
when 2مقدار then 2مقدار دلخواه
.
.
.
else مقدار دلخواه
end
(مثال3) اکنون با استفاده از دستور و ساختار شرطی case when در sql کد مثال 1 را بصورت زیر بازنویسی میکنیم:
declare @a int=1,@str nvarchar(10)=''
set @str=(
case @a
when 1 then 'One'
when 2 then 'Two'
when 3 then 'Three'
else 'Other'
end)
print @str
برخلاف دستور شرطی if که نمیتوان از آن در استفاده اس select و کوئری جداول براحتی استفاده کرد از دستور شرطی case when میتوان براحتی استفاده کرد.
برای استفاده از دستور ساختار شرطی case when در sql مثال زیر را دقت کنید:
(مثال4) فرض کنید در جدول مدرک تحصیلی قرار است رتبه بندی انجام گیرد.
این رتبه بندی بر اساس مدرک تحصیلی بصورت زیر قرار است دسته بندی انجام شود:
مدارک تا دیپلم: Beginner
از فوق دیپلم تا فوق لیسانس: Full
دکترا یا بالاتر: Professional
اکنون میخواهیم در ایجاد کوئری در sql داشته باشیم که ستونی به جدول اضافه کنیم که با استفاده از دستور ساختار شرطی case when در اس کیو ال sql این رتبه بندی را انجام دهد:
select *, (case
when ideducation <= 2 then 'Beginner'
when ideducation >= 3 and ideducation <= 5 then 'Full'
else 'Professional' end) from tblEducation
حاصل اجرای کد بالا ساخت جدول زیر خواهد بود:
با دقت به مثالهای استفاده از دستور ساختار شرطی case when در sql متوجه خواهیم شد که این ساختار عملکرد تابعی دارد و حاصل درونی () پرانتزها فیلدی از فیلدهای جدول باز خواهد گشت.