PDA

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'