ورود

View Full Version : استفاده از Case در قسمت شرط عبارت Select



damanpak
سه شنبه 10 تیر 1393, 09:00 صبح
سلام به اساتید
دوستان من در اس کیو ال یک متغیری دارم مثلا بنام CustomerId
حال میخوام عبارت سلکتی بنویسم که اگر مقدار CustomerId برابر صفر بود همه رکوردها رو بیاره و اگه مخالف صفر بود فقط رکوردی رو بیاره که مقدار کلید اصلیش برابر با CustomerId باشه
دقت کنید که نمیخوام بصورت زیر باشه

Declare @CustomerId int
if @CustomerId<>0
select * from Orders where CustomerId=CustomerId
else
select * from Orders where CustomerId<>CustomerId

میخوام بعد از عبارت Where با Case چک بشه که اگه CustomerId مقدار داشت بر اساس اون شرط اعمال بشه وگرنه همه رکوردها رو بیاره
پیشاپیش ممنون از همکاریتون

argess
سه شنبه 10 تیر 1393, 12:02 عصر
فکر کنم این کمکت کنه

http://majiksource.ir/index.php?threads/%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-case-%D8%AF%D8%B1-%D9%82%D8%B3%D9%85%D8%AA-%D8%B4%D8%B1%D8%B7-%D8%B9%D8%A8%D8%A7%D8%B1%D8%AA-select.33/

ASKaffash
سه شنبه 10 تیر 1393, 12:48 عصر
سلام
درست نوشتی فقط where CustomerId<>CustomerId را حذف کنید

سلام به اساتید
دوستان من در اس کیو ال یک متغیری دارم مثلا بنام CustomerId
حال میخوام عبارت سلکتی بنویسم که اگر مقدار CustomerId برابر صفر بود همه رکوردها رو بیاره و اگه مخالف صفر بود فقط رکوردی رو بیاره که مقدار کلید اصلیش برابر با CustomerId باشه
دقت کنید که نمیخوام بصورت زیر باشه

Declare @CustomerId int
if @CustomerId<>0
select * from Orders where CustomerId=CustomerId
else
select * from Orders where CustomerId<>CustomerId

میخوام بعد از عبارت Where با Case چک بشه که اگه CustomerId مقدار داشت بر اساس اون شرط اعمال بشه وگرنه همه رکوردها رو بیاره
پیشاپیش ممنون از همکاریتون