PDA

View Full Version : یه مشکل جالب با SQL 2000 - سورت اشتباه "و" و "ه"



hrsaberi
سه شنبه 02 اسفند 1390, 19:27 عصر
سلام
نمی دونم تا حالا به این مشکل برخورد کردید یا نه ؟
فرض کنیم جدولی داریم شامل اسامی افراد مثل زیر(نام جدول tblName) :
کد عضو ..... نام ..... نام خانوادگی
=======================
120016 رضا ............. هدايتي
119817 مهرشاد ....... هدايتي گودرزي
119788 پيوند .......... والا
119903 صدراله ........ ورزي
119818 سيد رضا ..... وطن پور
119873 محمد .......... ياور پور
119789 كامران .......... يحيي نژاد عزيزي

دستور زیر رو که همه میدونن
Select * From tblName Order By Family ASC
*** نکته اینجاست ***
حرف "ه" قبل از "و" قرار می گیره !!:متعجب:

tiphooo
چهارشنبه 03 اسفند 1390, 00:55 صبح
توی 2008 هم این مشکل هست!

hrsaberi
چهارشنبه 03 اسفند 1390, 11:30 صبح
2008 تست نکردم ولی 2005 هم این مشکل رو داره.

یوسف زالی
چهارشنبه 03 اسفند 1390, 11:58 صبح
در 2008 از تبدیل کولیشن استفاده کنید:
select Name collate Persian_100_CI_AI from TBL

این مورد به دلیل استفاده از کولیشن های غیر فارسی هست.

در سایر ورژن ها برای سورت صحیح احتمالا باید تابع بنویسید.

tiphooo
چهارشنبه 03 اسفند 1390, 23:20 عصر
با تشکر از You-See
ولی ظاهرا باید collate Persian_100_CI_AI در قسمت ORDER BY باشد
به صورت
select * from TBL
ORDER BY Name collate Persian_100_CI_AI

یوسف زالی
پنج شنبه 04 اسفند 1390, 00:27 صبح
اگر از نام فیلد در جلوی Order استفاده می کنید باید collate جلوی order باشه اما اگر از شماره فیلد در order استفاده می کنید باید در قسمت select باشه.
select Name collate Persian_100_CI_AI from TBL order by 1

hrsaberi
جمعه 05 اسفند 1390, 17:24 عصر
ممنون از پاسخ شما
ولی در sql 2000 چکار میشه کرد؟

یوسف زالی
جمعه 05 اسفند 1390, 17:44 عصر
در سایر ورژن ها برای سورت صحیح احتمالا باید تابع بنویسید.

...................