On Saturday, December 17, 2011 2:21:30 pm Stefan Weiss wrote:
>
> I know, but the problem only occurs when I want to sort by a column
> which hasn't been selected, and thus cannot be referred to by its index.
> For normal (non-union) queries, this is possible:
>
> SELECT relname
> FROM pg_class
> WHERE relhasindex
> ORDER BY relpages;
>
> In this trivial case, PostgreSQL knows where to look for "relpages".
> Not so in a union:
>
> SELECT relname
> FROM pg_class
> WHERE relhasindex
> UNION
> SELECT relname
> FROM pg_class
> WHERE relhasoids
> ORDER BY relpages;
>
> (ERROR: column "relpages" does not exist)
>
> I understand the error now (I think), and I know how to avoid it.
SELECT relname FROM pg_class WHERE relhasindex
UNION (SELECT relname FROM pg_class WHERE relhasoids ORDER BY relpages);
>
>
> thanks,
> stefan
--
Adrian Klaver
adrian.klaver@gmail.com