احمد سامعی
دوشنبه 14 فروردین 1391, 16:46 عصر
سلام
من یک جدول دارم برای مشتریان که اطلاعاتی مثل نام و تلفن و آدرس و... داره
برای جستجو مشتری گزینه هایی مثل نام و تلفن و ... گذاشتم،می خوام جستجو بر اساس اول حروف الفبا در نام مشتری هم داشته باشم. سرچ زدم چیزی پیدا نکردم
در فرم اصلی برنامه برای انتخاب حرف الفبا از رادیوباتن استفاده کردم. توی کوئری از like استفاده کردم
اما بعضی از حروف مثل الف شامل چندین نوع می شه
مثل آ و ا و أ و... خوب نمی شه واسه همه باتن گذاشت چون طبیعاً یک حرف حساب می شن
where چطوری بنویسم که مثلاً اگز پارامتر الف به صورت 'آاإأء' به کوئری پاس کردم همه به ازای همه این حروف سرچ بزنه ؟ مثلاً آیا می شه از in استفاده کردم
@name NVarChar(60) = null,
@alpha nvarchar(5) = 'x' --x: null
IF(@alpha = 'x') SET @name = '%' + RTRIM(@name) + '%';
ELSE SET @name = RTRIM(@alpha) + '%'
این هم بخش where که نوشتم برای نام:
AND (CommonTB.name LIKE COALESCE(@name, CommonTB.name))
من یک جدول دارم برای مشتریان که اطلاعاتی مثل نام و تلفن و آدرس و... داره
برای جستجو مشتری گزینه هایی مثل نام و تلفن و ... گذاشتم،می خوام جستجو بر اساس اول حروف الفبا در نام مشتری هم داشته باشم. سرچ زدم چیزی پیدا نکردم
در فرم اصلی برنامه برای انتخاب حرف الفبا از رادیوباتن استفاده کردم. توی کوئری از like استفاده کردم
اما بعضی از حروف مثل الف شامل چندین نوع می شه
مثل آ و ا و أ و... خوب نمی شه واسه همه باتن گذاشت چون طبیعاً یک حرف حساب می شن
where چطوری بنویسم که مثلاً اگز پارامتر الف به صورت 'آاإأء' به کوئری پاس کردم همه به ازای همه این حروف سرچ بزنه ؟ مثلاً آیا می شه از in استفاده کردم
@name NVarChar(60) = null,
@alpha nvarchar(5) = 'x' --x: null
IF(@alpha = 'x') SET @name = '%' + RTRIM(@name) + '%';
ELSE SET @name = RTRIM(@alpha) + '%'
این هم بخش where که نوشتم برای نام:
AND (CommonTB.name LIKE COALESCE(@name, CommonTB.name))