PDA

View Full Version : چطور بر اساس یه کلمه ی فارسی میشه select کرد ؟



dr_csharp
دوشنبه 08 بهمن 1386, 16:42 عصر
سلام دوستان
من دستور زیر رو تو SQL2005 اجرا میکنم ولی هیچ نتیجه ای بر نمیگردونه ! چه راه حلی پیشنهاد میکنید ؟

SELECT Name FROM TBLCompanies WHERE Name='رهیافت'
ظاهرا با فارسی ( یا همون عربی ) مشکل داره ! از تابع Convert و Cast هم استفاده کردم و کلمه ی 'رهیافت' رو به nvarchar تبدیل کردم ولی بازم نشد !؟
collation بانکم Arabic هست ، DataType فیلد Name هم از نوع nvarchar هست.
چیزی که جالبه این هست که اگه فیلدمون از نوع varchar باشه درست جواب میده !
ممنون از توجه شما :O)

رها
دوشنبه 08 بهمن 1386, 17:00 عصر
به جای حرف ی کلید Shift+D رو بگیر اگه با اون حالت پیداش کرد یا حتی نکرد توی سایت در مورد مشکل حرف ک و ی جستجمو کنی به نتیجه های خوبی می رسی

JAFO_IRAN
دوشنبه 08 بهمن 1386, 19:45 عصر
سلام

عبارتهای unicode در TSQL با یک N قبل از quote آغاز می‌شوند مثل: 'رهیافت'N

ارادت

fakhriamir
چهارشنبه 10 بهمن 1386, 09:01 صبح
یه درصد اول و آخر بزار مشکلت حل می شه و جای مساوی like بنویس
where a like '%امیر%'

مشکل اینه که وقتی مساوی می زاری حتما باید مساوی با اون باشه که برای تو نمایش بده اگه یه فاصله کم و زیاد باشه نمایش نمی ده ولی وقتی می گی like یعنی این کلمه هم داخل اون باشه

dr_csharp
چهارشنبه 10 بهمن 1386, 09:35 صبح
مشکل اینه که وقتی مساوی می زاری حتما باید مساوی با اون باشه که برای تو نمایش بده اگه یه فاصله کم و زیاد باشه نمایش نمی ده ولی وقتی می گی like یعنی این کلمه هم داخل اون باشه
این حرفتون درسته ولی :
یه درصد اول و آخر بزار مشکلت حل می شه و جای مساوی like بنویس
where a like '%امیر%'

پیشنهاد میکنم راه حلتون برای کلمه ی "رهیافت" تست کنید ، خواهید دید که تو SQL2005 اگه فیلدتون از نوع nvarchar باشه حتما باید یا کلمه ی "رهیافت" به nvarchar تبدیل بشه یا فیلدتون به varchar که nonunicode هست تغییر بدین :لبخندساده: