Umlautesortierung in Postgres

Frank Jagusch frank at jagusch-online.de
Di Nov 3 19:18:16 CET 2009


Hallo Jan-Benedict,
 
Am Montag, den 02.11.2009, 22:47 +0100 schrieb Jan-Benedict Glaw:
> On Mon, 2009-11-02 19:06:34 +0100, Frank Jagusch <frank at jagusch-online.de> wrote:
> > Hi alle,
> > da ist mir was unklar und auch nach einigem Suchen hab' ich keine Lösung
> > gefunden:
> > Bei einem SELECT FOO FROM BAR ORDER BY FOO bekomme ich von meinem auf
> > de_de eingestellten 8.3-er PostgreSQL folgende Sortierung
> > (exemplarisch):
> > oaa
> > oea
> > ofa
> > oxa
> > öa
> > paa
> > Wünschen tu' ich mir aber folgendes:
> > oaa
> > oea
> > öa
> > ofa
> > oxa
> > opa
> > Abstrakter ausgedrückt: PostgreSQL sortiert die Umlaute zwischen dem
> > Ausgangsbuchstaben und dem folgenden Buchstaben im Alphabet ein. Ich
> > wünsche mir aber die "Telefonbuchsortierung" mit den Umlauten zwischen
> > den entsprechenden ae, oe bzw. ue und af, of bzw. uf.
> > Kann mir jemand das Schräubchen zeigen, an dem ich da drehen muss? - Bin
> > für jeden Hinweis dankbar...
> .... order by regexp_replace (foo, 'ä', 'ae');
> (Und natürlich noch die übrigen Umlaute mit einbauen.)

Dein Vorschlag greift in meinem Fall zu kurz: Ich nutze die Datenbank
von einer alten Delphi Win32 Anwendung aus, die via BDE und ODBC auf die
Datenbank zugreift. Die BDE schraubt unter Verwendung der vorhandenen
Indexe selber SELECTs zusammen - da kann ich keine Funktionsaufrufe in
die ORDER BY Clause bringen.

Dennoch Dank für Deinen Vorschlag.

Frank
-- 
http://www.jagusch-online.de/frank