Skip site navigation (1) Skip section navigation (2)

Re: sort mit order by auf Basis de_DE.utf8

From: "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: "Reinhard Asmus *EXTERN*" <reinhard(dot)asmus(at)spdfraktion(dot)de>,<pgsql-de-allgemein(at)postgresql(dot)org>
Subject: Re: sort mit order by auf Basis de_DE.utf8
Date: 2012-03-22 13:58:01
Message-ID: D960CB61B694CF459DCFB4B0128514C207A2B805@exadv11.host.magwien.gv.at (view raw or flat)
Thread:
Lists: pgsql-de-allgemein
Reinhard Asmus schrieb:
> ich habe eine DB eingerichtet mit initdb --locale='de_DE.utf8' (Version
> 8.3 unter Linux).
> 
> Bei der Einrichtung wurde gemeldet:
> 
> The database cluster will be initialized with locale de_DE.utf8.
> The default database encoding has accordingly been set to UTF8.
> The default text search configuration will be set to "german".
> 
> Wenn ich einen sort auf eine kleine Beispieltabelle mache, bekomme ich
> folgende Anwort:
> 
> select * from sgvs.test order by bezeichnung;
> 
> id | bezeichnung | schlagworte
> ----+-------------+-------------
>   11 | Anton       |
>    8 | Ätna        |
>   10 | Erna        |
>    2 | Kammer      |
>    6 | Kanten      |
>    1 | Käse        |
>    4 | Köbern      |
>    3 | Kümmern     |
>    5 | Kuno        |
>    9 | Möbel       |
>    7 | Zuber       |
> 
> Dabei wundere ich mich z.B. über die Reihenfolge von Anton/Ätna und
> Kanten/Käse.
> 
> Von Oracle kenne ich es anders herum. Warum ist das so?
> 
> Wie bekommt man in PostgreSQL eine Sortierung nach Telefonbuch hin (Ae,
> Oe, ...)?

Also bei mir schaut das in Oracle auch so aus:

SQL> ALTER SESSION SET nls_sort='GERMAN';

SQL> SELECT val FROM tab ORDER BY val;

VAL
----------------------------------------
Anton
Ätna
Erna
Kammer
Kanten
Käse
Köbern
Kümmern
Kuno
Möbel
Zuber

11 rows selected.


PostgreSQL verwendet die Collations, die das Betriebssystem zur Verfügung stellt.
Wenn es also eine solche für das Datenbankencoding gibt, kann man sagen:

SELECT val FROM tab ORDER BY val COLLATE "telefonbuch";

Linux hat sowas z.B. nicht, also geht es in PostgreSQL auf Linux auch nicht.

Liebe Grüße,
Laurenz Albe

In response to

pgsql-de-allgemein by date

Next:From: Albe LaurenzDate: 2012-03-22 16:03:50
Subject: Re: sort mit order by auf Basis de_DE.utf8
Previous:From: Susanne EbrechtDate: 2012-03-22 12:57:17
Subject: Re: sort mit order by auf Basis de_DE.utf8

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group