PDA

View Full Version : سوال: OR (محاسباتی) روی یک فیلد



zman123456
یک شنبه 19 خرداد 1387, 16:25 عصر
یا سلام
من یک جدول دارم که توش چندتا فیلد هست برای درک بهتر مثال میزنم.
User: tinyint
Group: tinyint
f: tinyint
a: bit
رکوردها:
1,1,1,1
1,2,1,0
حالا من می خوام یک query بزنم که بیاد اون دوتا 1 و 0 آخری (a) رو با هم OR کنه و به من بگه جواب 1 هست.
فعلا با sum این کار رو انجام دادم.ولی چون منطقا باید این 0و1 ها با هم or بشن می خواستم بدونم امکانش هست یا نه تا خوانایی کد بالاتر بره.
تو help گشتم فقط or روی دوتا فیلد رو پیدا کردم در حالی که من اینو روی دو یا چندتا رکورد می خوام.
با تشکر

AminSobati
دوشنبه 20 خرداد 1387, 23:11 عصر
دوست عزیزم به نظر من منطق OR در این صورت مسئله چیز ساده ای هست و شاید واقعا SUM کار شما رو راه بندازه. میشه OR هم کرد اما با روش نه چندان سر راست:


declare @x table(C bit)
insert @x values(0)
insert @x values(0)
insert @x values(1)
insert @x values(0)
insert @x values(0)

declare @y varchar(8000)
set @y=''
select @y=@y+ cast(C as varchar) + '|' from @x
select @y=left(@y,len(@y)-1)
exec ('select '+ @y)

zman123456
چهارشنبه 29 خرداد 1387, 07:16 صبح
با سلام خدمت استاد ثباتی
کدی که نوشتید درست کار میکنه ولی منطق این دو خط رو نفهمیدم؟


select @y=left(@y,len(@y)-1)
exec ('select '+ @y)

چرا left و ...
اگه میشه توضیح بدید ممنون میشم.