ورود

View Full Version : سوال: مشکل استفاده از عبارت Like در یک Query



mrsalam
جمعه 20 فروردین 1389, 09:29 صبح
سلام دوستان
من میخواستم SP بنویسم که در صورت دادن مقدار Null به پارامتر های آن ، آن پارامتر را در نظر نگیرد...
عبارتم را به این شکل نوشتم:


Select * from TableName
Where C1 LIKE @c1 AND C2 LIKE @C2

حال اگر پارامترم را به این صورت وارد کنم هیچ رکوردی نمایش نمی یابد!

C1='%%' C2='%%'

محمد سلیم آبادی
جمعه 20 فروردین 1389, 10:33 صبح
سلام،

حال اگر پارامترم را به این صورت وارد کنم هیچ رکوردی نمایش نمی یابد!

منظورتون از پرامترهای مگر همان متغیر های c1@ و c2@ نیستند؟ پس چرا اینطوری نوشتین؟

C1='%%' C2='%%'
و از طرفی چرا دوبار از علامت % استفاده کردین؟ چون عبارت Value/Expression/Column_name LIKE '%' --d همیشه برابر با TRUE خواهد بود.

گرچه گمان می کنم می خواهین یک جستجوی پویا ایجاد کنید ولی در کل سوالتون برای من کاملا روشن نیست اگر امکان داره بیشتر توضیح بدین.

mrsalam
شنبه 21 فروردین 1389, 09:21 صبح
دوست عزیز ممنونم از توجه شما

بله دقیقا می خوام پویا باشه و پارامترهایی که مقدار ندارن را True در نظر بگیره
و در حالتی که مثال زدم باید مقدار true به شرط ارجاع شود و در نتیجه همه سطرها نمایش یابد

محمد سلیم آبادی
شنبه 21 فروردین 1389, 16:15 عصر
این چطوره؟



Select * from TableName
Where (C1 LIKE @c1 OR @C1 IS NULL) AND (C2 LIKE @C2 OR @C2 IS NULL)