如何根据varchar列不敏感地对变量进行排序,并且对变音符号不敏感。
例如,我会执行以下查询:
SELECT name FROM users ORDER BY name ASC
结果是:
但是我想把它分类为:
答案 0 :(得分:1)
因此,不区分大小写的排序有两种方法:
编写一个带有ORDER BY
子句的内联sql(显而易见但一个不好的做法);
SELECT name FROM user
ORDER BY UPPER(name) ASC
在内存中排序,使用C#与Linq将是这样的:
connection.Table<User>()
.OrderBy(user => user.Name, new CaseInsensitiveComparer());
对于变音符号不敏感的排序(又名Accent Insensitive),只有在插入db之前删除变音符号,或者在内存中排序才能按需删除变音符号。