سلام
میخوام FirstName را بر اساس حروف الفبا مرتب کنم ولی چون داده های من فارسی هست
Order by FirstName ASC
این دستور تاثیری نداره باید چی بنویسم
سلام
میخوام FirstName را بر اساس حروف الفبا مرتب کنم ولی چون داده های من فارسی هست
Order by FirstName ASC
این دستور تاثیری نداره باید چی بنویسم
سلام
شما وقتی دارید رو یک فیلد رشته ای Sort انجام میدین خود SQL Server این مورد رو رفع می کنه.
در ضمن شما چه Collation رو انتخاب کردید؟
نوع فیلد رشته ای شما چیه؟ آیا char یا Varchar یا Nvarchar گرفتید؟
Telegram : @SQL_Server
nvarchar انتخاب کردم
خوب از چه Collation دارید استفاده می کنید.؟
Telegram : @SQL_Server
Collation طریقه مرتب کردن و رفتار کردن SQL Server با داده های متنی شما رو مشخص میکنه.
روی دیتابیس راست کلیک کنید و ببینید چه Collation داره؟
احتمالا فیلدهای شما هم از Default Database Collation استفاده میکنه
Telegram : @SQL_Server
با تشکر از شما . collection دیتابیسم SQL_Latin1_General_CP1_CI_AS بود
میشه نمونه داده ای که وقتی سورت انجام میدین رو اینجا قرار بدین؟
Telegram : @SQL_Server
دوستان من با collation فارسی Persian_100_CI_AI یه مشکلی دارم
در هنگام sort کردن حرف <آ> (الف با مد یا کلاه) بعد از <ا> (الف معمولی) قرار میگیره
از SQL Express 2012 استفاده میکنم
راه حلی وجود داره؟
در C# با کدی شبیه کد زیر میتونی مرتب سازیتو اصلاح کنی
public class FarsiComparer : IComparer<string> {
public int Compare(string x, string y)
{
if (x.ToCharArray()[0] =='آ' && y.ToCharArray()[0] !='آ')
return -1;
if (x.ToCharArray()[0] == 'ا' && y.ToCharArray()[0] == 'آ')
return 1;
return String.Compare(x, y);
}
}
حالا میتونی برای مرتب سازی از کلاسی که بالا تعریف شده استفاده کنی
var result = list.OrderBy(f => f, new FarsiComparer());