regexp_matches () in WHERE-Bedingung verwenden

From: Tim Landscheidt <tim(at)tim-landscheidt(dot)de>
To: pgsql-de-allgemein(at)postgresql(dot)org
Subject: regexp_matches () in WHERE-Bedingung verwenden
Date: 2010-11-09 16:01:24
Message-ID: m3k4kmlc4r.fsf@passepartout.tim-landscheidt.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Hallo,

wie kann ich regexp_matches () in einer WHERE-Bedingung ver-
wenden? Die "Alternative" mit regexp_replace funktioniert:

| tim=# SELECT s FROM (VALUES ('a1'), ('c2d'), ('3f')) AS S (s) WHERE regexp_replace(s, '^.*?([0-9]+).*?$', E'\\1') <> '3';
| s
| -----
| a1
| c2d
| (2 Zeilen)

| tim=#

die "saubere" Variante nicht:

| tim=# SELECT s FROM (VALUES ('a1'), ('c2d'), ('3f')) AS S (s) WHERE (regexp_matches(s, '^.*?([0-9]+).*?$')) [1] <> '3';
| FEHLER: Argument von WHERE darf keine Ergebnismenge zurückgeben
| ZEILE 1: ... (VALUES ('a1'), ('c2d'), ('3f')) AS S (s) WHERE (regexp_mat...
| ^
| tim=#

TIA,
Tim

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Hubert Hupe 2010-11-10 12:13:53 pg_ctl
Previous Message Andreas 'ads' Scherbaum 2010-11-02 11:59:57 == Wöchentlicher PostgreSQL Newsletter - 31. Oktober 2010 ==