我有三种语言的所有国家的表格:英语、俄语和乌克兰语。在前两种语言上排序是可以的。但是在乌克兰国家的名字排序上是不行的。
在前两个位置,它代表两个字母 'є'
(ABC 中的第 8 个位置)和 'і'
(ABC 中的第 12 个位置),所有接下来的字母都被排序很好。
如何防止这种行为? DB编码为utf-8。
最佳答案
如果您使用的是 9.1,则可以将用于排序的排序规则添加到 ORDER BY 子句中:
SELECT *
FROM your_table
ORDER BY your_column COLLATE "ua_UA"
排序规则的名称取决于您的操作系统 - 不确定乌克兰的正确名称是什么。但我想你明白了。
您可能还想阅读此博客条目:
http://www.depesz.com/index.php/2011/03/04/waiting-for-9-1-per-column-collation-support/
关于PostgreSQL:乌克兰语文本排序错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9043770/