From: | "Albe Laurenz" <all(at)adv(dot)magwien(dot)gv(dot)at> |
---|---|
To: | "Susanne Ebrecht *EXTERN*" <miracee(at)miracee(dot)de>, <pgsql-de-allgemein(at)postgresql(dot)org> |
Subject: | RE: [pgsql-de-allgemein] Re: [pgsql-de-allgemein] Problem mit der Sortierung von ß |
Date: | 2007-04-27 11:21:59 |
Message-ID: | AFCCBB403D7E7A4581E48F20AF3E5DB2027364A5@EXADV1.host.magwien.gv.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Susanne Ebrecht hat geschrieben:
> Das Wort: außen, als Text in einer Datenbank (Spalte hat datentyp text).
>
> datenbank=# select spalte from datenbank where upper(spalte) like 'AUS%';
> Ergebnis: (0 Zeilen)
>
> Eigentlich erwarte ich da doch, dass er mir bei 'aus%' auch außen
> anzeigt.
>
> Ist das ein Bug oder ein Feature?
Wie gesagt, weder noch. Es ist halt so.
Vielleicht hilft in einigen Fällen ein Index und eine Funktion,
wie in diesem Beispiel:
test=> CREATE TABLE local (id serial PRIMARY KEY, val varchar(100));
CREATE TABLE
test=> INSERT INTO local (val) VALUES ('außen'), ('Ausschank'), ('Badehose');
INSERT 0 3
test=> CREATE FUNCTION local_f(text) RETURNS text LANGUAGE SQL IMMUTABLE
test-> AS $$SELECT lower(replace($1, 'ß', 'ss'))$$;
CREATE FUNCTION
test=> CREATE INDEX local_i ON LOCAL ((local_f(val)));
CREATE INDEX
test=> SELECT id, val FROM local WHERE local_f(val) LIKE 'aus%';
id | val
----+-----------
1 | außen
2 | Ausschank
(2 rows)
Läßt sich sicher erweitern!
Liebe Grüße,
Laurenz Albe
From | Date | Subject | |
---|---|---|---|
Next Message | Martin Spott | 2007-04-29 13:39:10 | Re: Linuxtag in Berlin |
Previous Message | Susanne Ebrecht | 2007-04-27 07:46:46 | Re: [pgsql-de-allgemein] Problem mit der Sortierung von ß |