David Higgs wrote:
> On 1/13/07, Tom Lane <tgl@sss.pgh.pa.us> wrote:
> > "David" <higgsd@gmail.com> writes:
> > > This statement works:
> > > => SELECT * FROM sal_emp WHERE 10000 = ANY (pay_by_quarter);
> >
> > > But this does not:
> > > => SELECT * FROM sal_emp WHERE ANY (pay_by_quarter) = 10000;
> > > ERROR: syntax error at or near "ANY" at character ...
> >
> > This is not a bug, it's the way the syntax works per SQL spec.
> > ANY must immediately follow the operator it relates to. See
> > <quantified comparison predicate> syntax in the spec.
> >
> > regards, tom lane
> >
>
> Aha, I see it in the docs now, although it's still rather unintuitive.
> Could the appropriate section on arrays be crosslinked to the ANY/ALL
> page, to preempt this question in the future?
I researched this and found this line right above the example you quoted
above:
An alternative method is described in Section 9.17. The above query
could be replaced by:
SELECT * FROM sal_emp WHERE 10000 = ANY (pay_by_quarter);
and section 9.17 is 9.17. Row and Array Comparisons. Not sure we can do
any better than that.
--
Bruce Momjian bruce@momjian.us
EnterpriseDB http://www.enterprisedb.com
+ If your life is a hard drive, Christ can be your backup. +