Beispiel:
Auszug aus einer Liste österreichischer Ortsnamen
Erzieltes Ergebnis mit ORDER BY:
Salzburg
St. Christophen
Steyr
St. Kanzian
Stockerau
St. Pölten
Gewünschtes Sortierergebnis
Salzburg
St. Christophen
St. Kanzian
St. Pölten
Steyr
Stockerau
Ist es möglich, die Art der Sortierung zu meinen Gunsten zu beeinflussen?
Soweit mir bekannt ist, hat sich in diesem Bereich nichts geändert zwischen PG 8.1 und PG 8.2
Wenn ich es richtig verstanden habe, verwendet PostgreSQL zum Sortieren Betriebssystem-Routinen.
Vor dem Stringvergleich werden offenbar Leerzeichen und Satzzeichen entsorgt. Aber genau das möchte ich hier nicht.
Meine Umgebung:
Linux … 2.6.17-10-386 #2 Tue Dec 5 22:26:18 UTC 2006 i686 GNU/Linux
test=*# select o from orte order by regexp_replace(regexp_replace(o,'.','1'),' ', 2);
o
-----------------
Salzburg
St. Christophen
St. Kanzian
St. Pölten
Steyr
Stockerau
(6 rows)
test=*#
Ugly, aber tut, was es soll, oder?
Der Trick ist, für die Sortierung den Punkt und das Leerzeichen durch Ziffern zu ersetzen