پاسخ به:آموزش گام به گام SQL Server
سه شنبه 21 تیر 1390 1:48 PM
سلام مجدد :
امیدوارم تا اینجا مطالب مفید بوده باشه.
خب بریم سراغ ادامه مطالب :
- ساختار Case : باتوجه به اینکه ساختار Case یک مقدار بازگشتی ارائه می دهد. بنابراین می توان گفت که ساختارCase عملکرد تابعی دارد و در دو شکل کلی ذیل قابل ارائه است.

اختلاف ظاهری دو ساختار نشان می دهد که ساختار 2 قدرتمندتر از ساختار 1 است چون بنحوی ساختار 1 را در خود جای می دهد برای درک بیشتر به مثال های ذیل دقت کنید:
Declare @x Int
Set @x = ( Case @y
When 1 Then 102
When 2 Then 203
When 3 Then 304
ELSE 1000
END)
دقت گردد که چون ساختارCase عملکرد تابعی دارد و مقداری را باز می گرداند بنابراین از علامت ( ) مناسب است استفاده گردد. حال اگر این قطعه برنامه با ساختار 2 ایجاد گردد خواهیم داشت:
Declare @x Int
Set @x = ( Case
When @y=1 Then 102
When @y=2 Then 203
When @y=3 Then 304
ELSE 1000
END)
باتوجه به اینکه ساختار 2 ازعبارت شرطی بهره می جوید قدرتمندی بیشتری را ارائه می دهد بعنوان مثال:
Declare @x Int
Set @x = Case When @y BetWeen 2 and 10 Then 300
When @y=15 or @y=17 Then 310
When @y=18 or @y>=20 Then 320
When @y+@z < = 30 Then 330
When Not @z < = 40 Then @z
ELSE @y END
بعدها خواهید دید که در دستوراتی نظیر Select استفاده از Case در مواردی بسیار مفید واقع خواهد شد.
مسئله ) در قطعه برنامه ذیل نوع داده های A تا G را تعیین کنید:
Set @A = Case
When @B Then 10
When @C=0 Then @D
When @D=@E Then Len (@F)
When @F=@G Then 20
END
در پست بعدی در مورد حلقه های تکرار بحث می کنیم.