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

标签 postgresql sorting

我有三种语言的所有国家的表格:英语、俄语和乌克兰语。在前两种语言上排序是可以的。但是在乌克兰国家的名字排序上是不行的。

在前两个位置,它代表两个字母 'є'(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/

相关文章:

sql - 在 PostgreSQL 中查询具有不同年份属性的顶级元素

sql - 根据先前行的标准创建和索引计数行

arrays - 在 Postgres jsonb 列中查询数组对象

java - 在 Java 中使用冒泡排序对数组进行排序时出错

javascript - AngularJS ng-repeat过滤器性能: custom filter or ng-show/hide

SQLITE:如何对包含值 1-99 和字母 a-z 的字符串列进行排序,首先是数字,然后是字母

Python3,使用 Pandas 函数 df.to_sql() 和 SQLAlchemy 将数据帧插入 PostgreSQL 数据库

postgresql - 如何查询 "has no linked records in this table"

algorithm - 快速函数归并排序

返回按计数排序的唯一值的 JavaScript 函数