PDA

View Full Version : بيت منطقي-bitwise



tayebeh
یک شنبه 22 دی 1387, 15:10 عصر
باسلام;
يك كوئري دارم كه حاصلش يه فيلد منطقي مي باشد به صورت زير:
condition
---------------
0
1
0
1
1
حالا مي خوام خروجي اين كوئري را با هم or كنم . يعني همه ركوردهامو و به عبارتي اين صفر و يك ها رو ميخوام با هم or كنم.آيا همچين كاري امكانپذير هست؟
ببينيد شما اگه بخواهيد مجموع يك فيلد از كوئري رو بدست بياريد،از ‌sum استفاده مي كنيد آيا ميشه كاري كرد كه خود اس كيو ال سرور خروجي اين كوئري رو با هم or كنه.ممنونم

reza_Nazem
یک شنبه 22 دی 1387, 18:44 عصر
SELECT CASE WHEN EXISTS( SELECT * FROM Tablename t WHere t.Condition = 1 ) THEN 1 ELSE 0 end


اگر کارت رو راه ننداخت بیشتر توضیح بده

tayebeh
دوشنبه 23 دی 1387, 08:17 صبح
باسلام
راه حل شما كارم رو راه انداخت.
خودم هم با استفاده از كوئري زير تونستم كارم رو انجام بدم ولي نميدونم استفاده از بهينه هست يا نه ؟
[CODE]

SELECT CAST(SUM(CAST(condition AS smallint)) AS bit) AS EXPR1
FROM Tablename

[CODE/]

AminSobati
چهارشنبه 25 دی 1387, 23:48 عصر
تصور میکنم روشی که در پست شماره 2 ذکر شده، با داشتن ایندکس باید سرعت بسیار خوبی داشته باشه. چون با پیدا کردن اولین "1" کار خاتمه پیدا میکنه و نیازی به جمع کردن همه رکوردها نیست