View Full Version : اشکال در نحوه استفاده از AND وOR
brida_kh
دوشنبه 24 اردیبهشت 1386, 07:26 صبح
میشه اساتید یه نگاهی به این دستور بندازن؟
شاید من ساختار دستور رو اشتباه استفاده میکنم.
SELECT top 1 * FROM mytable WHERE Show=N'کامل' and active=1 and catID=1 and (time =12 or time='now') and proper='it' ORDER BY cat DESC
mzjahromi
دوشنبه 24 اردیبهشت 1386, 07:52 صبح
خطائی که دریافت میکنی چیه؟
brida_kh
دوشنبه 24 اردیبهشت 1386, 09:06 صبح
ببینید خطائی نمیده!!!اما موقع انتخاب اون فیلدی که این شرایط داره رو بر نمیگردونه:ناراحت:
mzjahromi
دوشنبه 24 اردیبهشت 1386, 09:22 صبح
ممکنه از حرف ک باشه حرف ک توی ویندوزهای مختلف کدهای مختلفی داره یه بار توی بانک "کامل" رو پاک کنید دوباره بنویسید ببینید درست میشه؟
brida_kh
دوشنبه 24 اردیبهشت 1386, 09:26 صبح
دوست عزیز برای حرف ک امتحان کردم.الان با این شروط مختصر جواب میده
"SELECT top 1 * FROM mytable WHERE Show=N'کامل' and active=1 and catID=12 ORDER BY cat DESC"
اما قسمت OR رو که اضافه میکنم جواب نمیده.جالب اینکه دقیقا داده ای رو که توی این شرط صدق میکنه دارم.:عصبانی++:
JavanSoft
دوشنبه 24 اردیبهشت 1386, 09:37 صبح
ببینید خطائی نمیده!!!اما موقع انتخاب اون فیلدی که این شرایط داره رو بر نمیگردونه:ناراحت:
اون رکورد رو برنمی گردونه
ممکنه چند تا رکورد از بانکتون رو اینجا بزارید؟
AminSobati
دوشنبه 24 اردیبهشت 1386, 09:38 صبح
فکر میکنم مشکل از تبدیل فیلد time باشه (به جهت جنسش). عدد 12 آیا بدون Space ذخیره شده؟
mdsh1400
دوشنبه 24 اردیبهشت 1386, 09:38 صبح
از پرانتزهای بیشتری استفاده کنید
brida_kh
دوشنبه 24 اردیبهشت 1386, 10:20 صبح
دوستان ممنون از لطفتون
1*فیلد times از نوع nvarchar 100
2* این دیتائی که با شرط صدق میکنه باور کنید هست نمیدونم چطور اینجا بذارمش
3* and و or توی Sql قلق خاصی نداره که دوستان تجربه داشته باشند؟
AminSobati
دوشنبه 24 اردیبهشت 1386, 12:17 عصر
- اگر داخل پرانتز 1=1 قرار بدین جواب میده؟ (یا اصلا حذف کنین)
- سعی کردین هر کدوم از دو شرط داخل پرانتز رو حذف کنین و با یکیشون Query رو تست کنین؟
brida_kh
دوشنبه 24 اردیبهشت 1386, 16:38 عصر
بدون شرط or جواب میده .
reza_rad
سه شنبه 25 اردیبهشت 1386, 07:31 صبح
شاید مشکل از این باشه:
این قسمت رو:
time =12 or time='now'
اینجوری بکار ببرید:
ltrim(rtrim(time)) ='12' or ltrim(trim(time))='now'
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.