我有一个表,其排序规则设置为cs_CZ(捷克语):
Name | Encoding | Collation | CType
-----------+----------+-------------+-------------
foo | UTF8 | cs_CZ.UTF-8 | cs_CZ.UTF-8
Run Code Online (Sandbox Code Playgroud)
但是当我按字符串排序时,结果没有排序,因为它应该根据捷克字母表:
=> SELECT surname FROM foo ORDER BY surname;
surname
-----------------
A
Da
?b
Dc
E
Run Code Online (Sandbox Code Playgroud)
所以它的排序就像unicode重音字符(Ď)被转换为没有重音(D)的ASCII版本一样.但捷克语字母是:... C - > D - >Ď - > E ...,所以返回的顺序不正确(在这个例子中它应该是:A - > Da - > Dc - >Ďb - > E ).
这是常见的PostgreSQL行为吗?有没有办法按捷克字母顺序正确排序?
编辑:尝试Postgres 9.1.4,两者都有相同的行为.它是一个Arch Linux机器.
EDIT2:调整后的例子,Ď是真正的问题.
| 归档时间: |
|
| 查看次数: |
1607 次 |
| 最近记录: |