Ich habe eine Tabelle mit Sortierung auf cs_CZ (Tschechisch):PostgreSQL sortiert unsachgemäß Unicode-Zeichen mit tschechischen Sortierungs
Name | Encoding | Collation | CType
-----------+----------+-------------+-------------
foo | UTF8 | cs_CZ.UTF-8 | cs_CZ.UTF-8
aber wenn ich von String bestellen, wird Ergebnis nicht sortiert, wie es auf Tschechisch Alphabet entsprechend sollte :
=> SELECT surname FROM foo ORDER BY surname;
surname
-----------------
A
Da
Ďb
Dc
E
So ist es sortiert, wie wenn die Unicode-Akzent-Zeichen (D) in der entsprechenden ASCII-Version umgewandelt wurden ohne Akzent (D). Aber das tschechische Alphabet ist: ... C -> D -> Ď -> E ..., also ist die zurückgegebene Reihenfolge falsch (in diesem Beispiel sollte es sein: A -> Da -> Dc -> Ďb -> E).
Ist das übliche PostgreSQL-Verhalten? Gibt es eine Möglichkeit, wie man es korrekt nach dem tschechischen Alphabet sortiert?
EDIT: Versucht auf Postgres 9.1.4, haben beide das gleiche Verhalten. Es ist eine Arch Linux Maschine.
EDIT2: Angepasstes Beispiel, das Ď ist das eigentliche Problem.
Bitte teilen Sie uns mit, welche Version von PostgreSQL Sie verwenden. –
Bist du gerade zufällig auf PostgreSQL 9.1 oder einer neueren Version? Wenn ja, ist die Spalte * Nachname * in Ihrer Tabelle * foo * auf eine andere Sortierung eingestellt? –
Sorry, es ist Postgres 9.1.4 und es ist das gleiche auf 9.2.4. Frage aktualisiert Und nein, es gibt keine spaltenspezifische Sortierung. –