regexp_matches () in WHERE-Bedingung verwenden

regexp_matches () in WHERE-Bedingung verwenden

am 09.11.2010 17:01:24 von Tim Landscheidt

Hallo,

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

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

| tim=3D#

die "saubere" Variante nicht:

| tim=3D# 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_ma=
t...
| ^
| tim=3D#

TIA,
Tim


--=20
Sent via pgsql-de-allgemein mailing list (pgsql-de-allgemein@postgresql.o=
rg)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-de-allgemein