RE: [pgsql-de-allgemein] Re: [pgsql-de-allgemein ] Problem mit der Sortierung von ß
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
Home |
Main Index |
Thread Index