دستور case در sql
با نام و یاد خداوند. سلام خدمت کاربران گرامی
در جلسه قبل با دستور group by در sql آشنا شدیم.در این جلسه قصد داریم با دستور case در sql آشنا شویم .
در جدول Student مقادیر زیر را داشتیم :
select id,NameStudent,lastname,Age,Sex
from Student
خروجی جدول student:
اگر با دقت به جدول نگاه کنید مشاهده می کنید که در ستون sex که مربوط به جنسیت می باشد اصلا مشخص نیست که منظور از این 0 و 1 چیست ؟درست است که ما در ذهن خودمان 1 را برای مرد و 0 را برای جنسیت زن در نظر گرفته ایم. اما به غیر از خودمان هیچ کس متوجه نمی شود منظور ما از این ارقام چیست ؟
برای اینکه شما خروجی ها را مفهومی تر و خواناتر بیان کنید از دستوری بنام دستور case می توان استفاده کرد .
بدین صورت که دستور case را قبل از فیلدی که این حالات می خواهد برای آن اجرا شود قرار می دهیم .
select id,NameStudent,lastname,Age,case Sex
when 1 then ‘مرد’
when 0 then ‘زن’
end
from Student
خروجی دستور:
مشاهده می کنیم که به جای 1 و 0 مقادیر زن و مرد جایگزین شده است و همچنین نام ستون هم به No column name تغییر کرده است پس در اینجا یک دگرگونی انجام می دهیم و نام ستون را انتخاب می کنیم .
select id,NameStudent,lastname,Age,case Sex
when 1 then ‘مرد’
when 0 then ‘زن’
end as ‘جنسیت’
from Student
خروجی دستور:
اگر در اینجا مقادیر دیگری به جدولم اضافه کنم و جنسیت آن شخص را مشخص نکنم . چه باید کرد ؟
شخص دیگری به نام همایون به جدولم اضافه می کنم اما جنسیت آن را مشخص نکردم .مشاهده می کنید که عبارت NULL نمایش داده شده است.
به جای جنسیت هایی که مشخص نشده است عبارت تعیین نشده را نمایش دهد
select id,NameStudent,lastname,Age,case Sex
when 1 then ‘مرد’
when 0 then ‘زن’
else نشده تعیین’
end as ‘جنسیت’
from Student
خروجی دستور:
مشاهده می کنید که که به جای NULL عبارت تعیین نشده جایگزین شده است .
نکته : اگر به جای عبارت های زن ،مرد وتعیین نشده علامت ؟ قرار گرفت مطابق شکل زیر :
این مشکل به این دلیل است که شما در هنگام ایجاد دیتابیس خود زبان فارسی را انتخاب نکرده اید .
برای رفع این مشکل روی دیتابیس راست کلیک کرده و گزینه ی Properties را انتخاب کنید .
پنجره ی Properties Database باز می شود به تب Option رفته و در قسمت Collation گزینه ی Persian_100_CI_AI_KS_WS_SC را انتخاب می کنیم .
در این جلسه با دستور case آشنا شدیم ، در جلسه بعد قصد داریم تا شما را با دستور join در SQL (پیوند دادن جداول ) آشنا کنیم .
با آموزش مبانی SQL Server در خدمت شما هستیم. لطفا سوالات ، نظرات و پیشنهادات خود را در قسمت دیدگاه ها با ما در میان بگذارید.
به این مقاله چند تا ستاره میدی؟[تعداد رای: 10 امتیاز: 4.8]
عالی بود و مفید