From: | Thomas Kellerer <spam_eater(at)gmx(dot)net> |
---|---|
To: | pgsql-sql(at)postgresql(dot)org |
Subject: | Re: Using regexp_matches in the WHERE clause |
Date: | 2012-11-27 12:08:05 |
Message-ID: | k92ae9$di0$1@ger.gmane.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
> > So I tried:
> >
> > SELECT *
> > FROM some_table
> > WHERE regexp_matches(somecol, 'foobar') is not null;
> >
> > However that resulted in: ERROR: argument of WHERE must not return a set
> >
> > Hmm, even though an array is not a set I can partly see what the problem is
> > (although given the really cool array implementation in PostgreSQL I was a bit surprised).
> >
> >
> > So I though, if I convert this to an integer, it should work:
> >
> > SELECT *
> > FROM some_table
> > WHERE array_length(regexp_matches(somecol, 'foobar'), 1) > 0
> >
> > but that still results in the same error.
> >
> > But array_length() clearly returns an integer, so why does it still throw this error?
> >
> >
> > I'm using 9.2.1
> >
> Sounds to me like this:
>
> http://joecelkothesqlapprentice.blogspot.nl/2007/12/using-where-clause-parameter.html
>
Thanks, but my question is not related to the underlying problem.
My question is: why I cannot use regexp_matches() in the WHERE clause, even when the result is clearly an integer value?
Regards
Thomas
From | Date | Subject | |
---|---|---|---|
Next Message | Pavel Stehule | 2012-11-27 12:26:15 | Re: Using regexp_matches in the WHERE clause |
Previous Message | Willem Leenen | 2012-11-27 11:44:24 | Re: Using regexp_matches in the WHERE clause |