PDA

View Full Version : مشکل در search در دستور like



jeniferxp
سه شنبه 30 بهمن 1386, 16:06 عصر
با سلام
دوستان من یک جدول در sql 2000 دارم که حاوی فیلدی به نام رشته تحصیلی است حال میخواهم افرادی که مثلا در رشته تحصیلی آنها کلمه مدیریت داره بهم نشون بده ، من این کار رو با دستور like مینویسم جواب نمیده یعنی null بر می گردونه اما وقتی کلمه کامل رو می نویسم جواب میده ، این هم کد من :

select * from tbl1 where reshte like N 'مدیریت%'

میشه منو در این زمینه بیشتر راهنمایی کنید

Elham_gh
سه شنبه 30 بهمن 1386, 16:18 عصر
شما برای جستجو کردن با عبارات فارسی باید یک تابع بنویسید، که این تابع sapce ها حذف کند و حروف مشکل دار فارسی را یکسان کند.مثلا انواع "ی" را به یک نوع تبدیل کند.یا انواع ک و پ و....
حال اینگونه جستجو کنید(فرض کند نام تابع شما Clearing است):


DECLARE @x AS NVARCHAR(1000)
SET @x=fnClearing('مدیریت ')+'%'
select * from tbl1 where fnClearing(reshte) like @x

nasseritemp
سه شنبه 30 بهمن 1386, 19:11 عصر
باید یک تابع بنویسید، که این تابع sapce ها حذف کند [/code]


برای این قسمت میتونید Data Type فیلدتون رو nvarchar در نظر بگیرید.
در ضمن از توابع LTrim و RTrim هم میتونید استفاده کنید.

jeniferxp
چهارشنبه 01 اسفند 1386, 09:22 صبح
با تشکر از شما دوستان
مشکلم حل شد یعنی اینکه نباید بین N و '%مدیریت' فاصله میذاشتم .
با این حال بازم ممنون