PostgreSQL:乌克兰语文本排序错误

Vit*_*mar 3 sorting postgresql

我与所有国家/地区有三种语言的桌子:英语、俄语和乌克兰语。对于前两种语言,排序是可以的。但对乌克兰国家的名称排序就不行了。

\n\n

前两个位置上有两个字母'\xd1\x94'(ABC 中的第 8 个位置)和'\xd1\x96'(ABC 中的第 12 个位置),所有接下来的字母都排序良好。

\n\n

如何防止这种行为?DB编码为utf-8。

\n

小智 5

如果您使用的是 9.1,您可以将用于排序的排序规则添加到 ORDER BY 子句中:

SELECT *
FROM your_table
ORDER BY your_column COLLATE "ua_UA"
Run Code Online (Sandbox Code Playgroud)

排序规则的名称取决于您的操作系统 - 不确定乌克兰的正确名称是什么。但我想你明白了。

您可能还想阅读此博客文章:

http://www.depesz.com/index.php/2011/03/04/waiting-for-9-1-per-column-collat​​ion-support/