RE: [pgsql-de-allgemein] Re: [pgsql-de-allgemein] Problem mit der Sortierung von ß

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

In response to

Browse pgsql-de-allgemein by date

  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 ß