Re: LIKE or SIMILAR TO

From: Klaus Kaisersberger <point-of-entry(at)outlook(dot)com>
To: Ulrich Goebel <ml(at)fam-goebel(dot)de>, "pgsql-de-allgemein(at)postgresql(dot)org" <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: Re: LIKE or SIMILAR TO
Date: 2016-04-18 18:19:13
Message-ID: DUB125-W94F590C6DB5776DFF265B8CD6B0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Muss es pgplsql sein? Wenn nicht: Eine SQL-Funktion (language sql) täte es auch, die auf folgendem basiert:

select
    upper(regexp_replace(eingabe.ws,E'.*(ws-\\d+).*','\1','i')) workshop
from
    tabelle eingabe
where
    eingabe.ws~E'(?i)ws-\\d+';

Diese könnte auch gleich die gesamte Tabelle verarbeiten.

----
Klaus

> To: pgsql-de-allgemein(at)postgresql(dot)org
> From: ml(at)fam-goebel(dot)de
> Subject: [pgsql-de-allgemein] LIKE or SIMILAR TO
> Date: Mon, 18 Apr 2016 19:28:00 +0200
>
> Hallo,
>
> ich habe eine Anfängerfrage:
>
> In einem Feld
> ws varchar(50)
> sammle ich Benutzer-Eingaben, die keiner Formatierung genügen müssen.
> (Es sind Teilnehmer einer Tagung, die über ein Formular ihren
> Workshop-Wunsch angeben.)
> Z.B.
> WS-01, Ökologie, Lieschen Müller
> Lieschen Müller: Ökologie (WS-01)
> Nun möchte ich eine plpgsql-Funktion fkt_ws_norm schreiben, die mir den
> ersten Eintrag in ws der Art
> WS-01
> WS-02
> ...
> WS-99
> (gemeint ist "Workshop Nr. 01 bis 99")
> aus ws sucht "normiert" zurückgibt. Die Funktion soll z.B. folgende
> Fälle tolerieren:
> ws-01 --> WS-01
> ws 01 --> WS-01
> WS.01 --> WS-01
> WS01 --> WS-01
> Also etwa so:
>
> create or replace
> function fkt_ws_norm(ws varchar(50)) returns varchar(6) as $$
> begin
> ws_norm = "erster Eintrag in ws der Art WS-##"
> return upper(ws_norm);
> end;
> $$ language plpgsql;
>
> Wie macht man sowas?
>
> Beste Grüße und danke für Hilfe
> Ulrich
>
> --
> Ulrich Goebel
> Paracelsusstr. 120, 53177 Bonn
>
>
> --
> Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-de-allgemein

In response to

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Charles Clavadetscher 2016-04-20 10:15:55 Swiss PGDay 24.06.2016: Die Anmeldung ist eröffnet
Previous Message Ulrich Goebel 2016-04-18 17:28:00 LIKE or SIMILAR TO