From: | Egon Wilfinger <egon(at)wilfinger(dot)at> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Sort Order von Leerzeichen |
Date: | 2005-12-10 09:29:44 |
Message-ID: | 439AA008.1050400@wilfinger.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
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 ('€');
INSERT INTO t_test (text) VALUES ('€1');
INSERT INTO t_test (text) VALUES ('€ 1');
SELECT * FROM t_test ORDER BY text;
ID | text
----+------
17 | €
18 | €1
19 | € 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
From | Date | Subject | |
---|---|---|---|
Next Message | Peter Eisentraut | 2005-12-10 10:25:24 | Re: Sort Order von Leerzeichen |
Previous Message | Andrej Doumack | 2005-12-10 02:42:06 | Re: Jdbc Resultset zu gross |