Sort Order von Leerzeichen

Wieder ein mal das Thema Leerzeichen und Sortierung:

Im SQL_ASCII - Zeichensatz und der C Locale werden die Daten
'a', 'a1' und 'a 1' folgendermaßen sortiert:
'a' --> 'a 1' --> 'a1', also das Leerzeichen wie ein
Buchstabe, der vor den Ziffern sortiert wird.

Wegen der Umlaute und dem Euro-Zeichen wurde die Datenbank
auf 'LATIN9' Encoding und der 'at_DE [at] euro' Locale umgestellt.

Jetzt gibt es eher unerwartete Sortierergebnisse:

CREATE TABLE t_test
(
"ID" serial,
text varchar(200),
CONSTRAINT pkey PRIMARY KEY ("ID")
) WITHOUT OIDS;


INSERT INTO t_test (text) VALUES ('A');
INSERT INTO t_test (text) VALUES ('A10');
INSERT INTO t_test (text) VALUES ('A 1');
INSERT INTO t_test (text) VALUES ('A1');
INSERT INTO t_test (text) VALUES ('A 20');
INSERT INTO t_test (text) VALUES ('A 2');
INSERT INTO t_test (text) VALUES ('A2');
INSERT INTO t_test (text) VALUES ('a');
INSERT INTO t_test (text) VALUES ('a1');
INSERT INTO t_test (text) VALUES ('a 1');
INSERT INTO t_test (text) VALUES ('ä');
INSERT INTO t_test (text) VALUES ('ä1');
INSERT INTO t_test (text) VALUES ('ä 1');
INSERT INTO t_test (text) VALUES ('b');
INSERT INTO t_test (text) VALUES ('b1');
INSERT INTO t_test (text) VALUES ('b 1');
INSERT INTO t_test (text) VALUES ('=A4');
INSERT INTO t_test (text) VALUES ('=A41');
INSERT INTO t_test (text) VALUES ('=A4 1');

SELECT * FROM t_test ORDER BY text;
ID | text
----+------
17 | =A4
18 | =A41
19 | =A4 1
8 | a
1 | A
11 | ä
9 | a1
10 | a 1
4 | A1
3 | A 1
12 | ä1
13 | ä 1
2 | A10
7 | A2
6 | A 2
5 | A 20
14 | b
15 | b1
16 | b 1
(19 Zeilen)

Das Leerzeichen scheint nicht mehr ein eigener Buchstabe zu sein,
sondern nur noch den folgenen Buchstaben zu 'beschweren'.

Gibt es eine einfache Möglichkeit, dass die Leerzeichen wieder
vor den Zahlen und Buchstaben sortiert werden?
In den Client-Anwendungen wird in vielen Stellen davon der
speziellen Reihenfolge ausgeganen, und die Workarounds sind
bis jetzt sehr umständlich.

Vielen Dank

Egon

---------------------------(end of broadcast)---------------------------
TIP 6: explain analyze is your friend
Egon Wilfinger [ Sa, 10 Dezember 2005 10:29 ] [ ID #1096499 ]

Re: Sort Order von Leerzeichen

Egon Wilfinger wrote:
> Gibt es eine einfache Möglichkeit, dass die Leerzeichen wieder
> vor den Zahlen und Buchstaben sortiert werden?

Höchstens eine eigene Locale definieren.

--
Peter Eisentraut
http://developer.postgresql.org/~petere/

---------------------------(end of broadcast)---------------------------
TIP 2: Don't 'kill -9' the postmaster
Peter Eisentraut [ Sa, 10 Dezember 2005 11:25 ] [ ID #1096500 ]
Datenbanken » gmane.comp.db.postgresql.german » Sort Order von Leerzeichen

Vorheriges Thema: Query SELECT * sehr langsam
Nächstes Thema: Jdbc Resultset zu gross