PDA

View Full Version : انتخاب همه ستون ها به جز یکی



desatir7316
جمعه 19 خرداد 1391, 22:54 عصر
سلام دوستان
می خواستم همه ستون های یک table رو به جز فیلد id رو انتخاب کنم
چی کار باید کنم
باید همه ستون ها رو به جز اون یکی تو select بیارم؟

اگه بشه با except نوشتش خوب من اینو نوشتم ولی خطای زیر رو داد:
alter proc select_mobile(@mobileModel nvarchar(max)) as
select * from mobile
except
select mobile.id from mobile
where mobile.model= @mobileModel;
go

خطا:

Msg 205, Level 16, State 1, Procedure select_mobile, Line 2
All queries combined using a UNION, INTERSECT or EXCEPT operator must have an equal number of expressions in their target lists.


ممنون می شم راهنمایی کنید.

++Hichkas
جمعه 19 خرداد 1391, 23:51 عصر
سلام
من تا حالا Sql کار نکردم ولی یه کتاب( آموزش SqlServer2008 نویسنده Robin Dewson ) در موردش داشتم گشتم و یه چیزی پیدا کردم امیدوارم به درد بخوره
تو کتاب نوشته شده بود : " هنگام ساخت دستور SELECT هر ستونی را که نمی خواهید ببینید ، نیازی به نام بردن از آن نیست. فقط باید ستون هایی را برگردانید که به آنها نیاز دارید."
یه مثال تو کتاب بودکه در زیر با کد کتاب نوشتم:
مشخص کردن ستون های خاصی در پرس جو . در این نمونه می خواهیم از جدول customerDetails.Customer نام ، نام خانوادگی و موجودی فعلی مشتریان را برگردانیم . به این معنی که باید در پرس جو از ستون های CustomerFirstName ، CustomerLastName و CleareBalance نام ببریم . کد به صورت زیر خواهد بود:
SELECTE CustomerFirstName,CustomerLastName,CleareBlance
FROM CustomerDetails.Customers

حمیدرضاصادقیان
شنبه 20 خرداد 1391, 06:52 صبح
سلام.


اگه بشه با except نوشتش
Except برای Join دو دستور هست که برعکس دستور Union عمل میکنه. در واقع شما با union حاصل دو Select رو باهم ترکیب میکنید ولی با Except نتیجه Select دوم رو از اول تفریق میکنید.تمام شرایط دستور union نیز برای این دستور صادقه.

برای کار شما باید زحمت بکشید لیست تمام فیلدهارو بنویسید.