ورود

View Full Version : سوال: محدود کردن مقادیر مختلف به دو Range خاص



hdv212
جمعه 27 اردیبهشت 1387, 16:47 عصر
سلام و خسته نباشید
جدولی دارم که فیلدی داره و در اون محل تولد افراد ذخیره میشه.
حالا زمانی که بر اساس محل تولد افراد گزارشی مانند زیر میگیرم :

select male_birthPlace,count(id) from tbl_kaheshTalagh
group by male_birthPlace
order by count(id) desc
شهرهای زیادی در گزارش میاد، میخوام شهرها رو محدود کنم، مثلا بگم اونایی که محل تولدشون تهران هست و اونایی که نیست، چکار باید بکنم ؟ (یعنی محل تولد به دو قسمت تبدیل بشه، اونایی که تهران هست و اونایی که نیست)، چکار باید بکنم ؟

SYNDROME
جمعه 27 اردیبهشت 1387, 18:16 عصر
می توانی با استفاده از Union این دو دسته را به هم متصل کنی.پ


Select Name , Family , City
From Tbl_Test
Where City='Tehran'
Union All
Select Name , Family , City
From Tbl_Test
Where City<>'Tehran'

اول اسامی تهرانی ها را می آورد و بعد اسامی استانهای دیگر را.
برای آوردن یکی از این دسته هم Select ها را جداگانه اجرا کنید.
موفق باشید

linux
جمعه 27 اردیبهشت 1387, 19:21 عصر
سلام و خسته نباشید
جدولی دارم که فیلدی داره و در اون محل تولد افراد ذخیره میشه.
حالا زمانی که بر اساس محل تولد افراد گزارشی مانند زیر میگیرم :

select male_birthPlace,count(id) from tbl_kaheshTalagh
group by male_birthPlace
order by count(id) desc
شهرهای زیادی در گزارش میاد، میخوام شهرها رو محدود کنم، مثلا بگم اونایی که محل تولدشون تهران هست و اونایی که نیست، چکار باید بکنم ؟ (یعنی محل تولد به دو قسمت تبدیل بشه، اونایی که تهران هست و اونایی که نیست)، چکار باید بکنم ؟


select case
when CityName='تهران' then 'تهران'
when CityName<> 'تهران' then 'شهرستان'
end
from yourtable
group by (case
when CityName='تهران' then 'تهران'
when CityName<> 'تهران' then 'شهرستان'
end)

AminSobati
جمعه 27 اردیبهشت 1387, 23:44 عصر
پیشنهاد میکنم حتما Execution Plan روشهایی که دوستان مطرح کردند رو بررسی و گزینه بهتر رو انتخاب کنید