我有整理设置为cs_CZ(捷克)表:PostgreSQL的不当排序与捷克整理的Unicode字符
Name | Encoding | Collation | CType
-----------+----------+-------------+-------------
foo | UTF8 | cs_CZ.UTF-8 | cs_CZ.UTF-8
,但是当我通过字符串命令,结果并不像它应该根据捷克字母排序:
=> SELECT surname FROM foo ORDER BY surname;
surname
-----------------
A
Da
Ďb
Dc
E
所以排序一样,如果unicode的重音字符(d)转化成它的ASCII版本,而口音(d)。但捷克字母表是:... C - > D - >Ď - > E ...,所以返回的顺序是不正确的(在这个例子中它应该是:A - > Da - > Dc - >Ďb - > E )。
这是通常的PostgreSQL行为?有没有办法按照捷克语字母正确排序?
编辑:在Postgres 9.1.4上试过,两者都有相同的行为。它是一台Arch Linux机器。
编辑2:调整的例子,Ď是真正的问题。
请告诉我们你正在使用哪个版本的PostgreSQL。 –
恰巧,你碰巧在PostgreSQL 9.1或更新的版本上?如果是这样,您的* foo *表中的*姓*列设置为不同的排序规则? –
对不起,这是Postgres 9.1.4,9.2.4上也是一样。问题已更新。不,没有列专用的排序规则。 –