آموزش کار با ساختار های شرطی if case when در sql

آموزش کار با ساختار های دستور شرطی if case when در sql

آموزش کار با 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 

حاصل اجرای کد بالا ساخت جدول زیر خواهد بود:

آموزش کار با ساختار های شرطی if case when در sql

با دقت به مثالهای استفاده از دستور ساختار شرطی case when در sql متوجه خواهیم شد که این ساختار عملکرد تابعی دارد و حاصل درونی () پرانتزها فیلدی از فیلدهای جدول باز خواهد گشت.

دانلود آموزش کار با ساختار های دستور شرطی if case when در sql