PDA

View Full Version : سوال: مشكل در كوئري sql : چگونه مي توان از فيلدهاي محاسباتي در select در قسمت where استفاده كنم ؟



dab_hrd
سه شنبه 30 آبان 1391, 12:57 عصر
با سلام و خسته نباشد
من يك دستور select فرضا" به صورت ذيل دارم
select code, name , code*2 as test
where test >100
البته اين يك مثال ذهني است مشكل اينجاست كه فيلدهاي را كه در هنگام select خودمان تعريف مي كنيم و جزو فيلدهاي جدولمان نباشند را نمي توان در قسمت where استفاده كرد
براي حل اين مشكل چه كار كنم
با تشكر

boysilent
سه شنبه 30 آبان 1391, 13:48 عصر
؟میشه یکم واضح تر توضیح بدید

dab_hrd
سه شنبه 30 آبان 1391, 14:05 عصر
؟میشه یکم واضح تر توضیح بدید

ضمن تشكر از پاسخ شما
در مثال زير
select code, name , code*2 as test
where test >100
from code
فيلد test در جدول code وجود ندارد بلكه در هنگام select مي گويك كه فرضا" فيلد test جدول را در ععد 2 ضرب و نتيجه را يك ستون جديد به نام test بريزد و تا اينجاي كار مشكلي وجود ندارد
اما مشكل اينجاست كه بر اساس فيلد ساخته شده test ديگر نمي توان شرط گذاشت يعني با استفاده از دستور where خطا مي دهد
با تشكر

samira3
سه شنبه 30 آبان 1391, 14:18 عصر
سلام .اينطوري بزن

select code, name ,code*2 as test
where code*2>100
from code
ببين جواب نمي ده من خودم زدم فكر كنم اينطوري ديگه جواب بد. باز خواستي بگو مثال خودم برات بزارم.

veniz2008
سه شنبه 30 آبان 1391, 16:26 عصر
سلام بصورت زیر هم میشه نوشت :

select * from
(select code, name ,code*2 as test from code)as std
where std.test > 100
دوستان فقط به این نکته توجه داشته باشید که کلمه from بایستی قبل از where بیاد نه بعد از اون.
موفق باشید.