PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

String-Sortierreihenfolge (LC_COLLATE und LC_CTYPE)

Die von Ihnen beschriebene Sortierreihenfolge ist in den meisten Gebietsschemas der Standard. Probieren Sie es einfach selbst aus:

SELECT regexp_split_to_table('D d a A c b', ' ') ORDER BY 1;

Wenn Sie Ihren DB-Cluster mit initdb initialisieren Sie können mit --locale=some_locale ein Gebietsschema auswählen . In meinem Fall ist es --locale=de_AT.UTF-8 . Wenn Sie nichts angeben, wird das Gebietsschema von der Umgebung geerbt - Ihr aktuelles Systemgebietsschema wird verwendet.

Die Vorlagendatenbank des Clusters wird auf dieses Gebietsschema eingestellt. Wenn Sie eine neue Datenbank erstellen, erbt diese die Einstellungen von der Vorlage. Normalerweise müssen Sie sich um nichts kümmern , es funktioniert einfach alles.

Lesen Sie das Kapitel über DATENBANK ERSTELLEN für mehr. Wenn Sie die Textsuche mit Indizes beschleunigen möchten, lesen Sie unbedingt etwas über Operatorklassen , ebenfalls.
Alle Links zu Version 8.4, da Sie ausdrücklich danach gefragt haben.

In PostgreSQL 9.1 oder später gibt es Sortierungsunterstützung die eine flexiblere Verwendung von Sortierungen ermöglicht: