> -----Original Message-----
> From: pgsql-general-owner@postgresql.org
> [mailto:pgsql-general-owner@postgresql.org]On Behalf Of Chris Green
> Sent: Thursday, December 02, 2004 9:56 AM
> To: pgsql-general@postgresql.org
> Subject: [GENERAL] UNION with ORDER BY -allowed?
>
>
> It's not quite clear (to me at least) whether I can have a UNION and
> an ORDER BY in a SELECT statement.
>
> What I want to do is:-
>
> SELECT
> col1, col2, col5, col6
> FROM
> table
> WHERE
> col2 = 'X'
> UNION
> SELECT
> col3, col4, col5, col6
> FROM
> table
> WHERE
> col4 = 'X'
> ORDER BY
> coalesce(col1, col3)
>
> Is this valid syntax allowed by postgresql? (I'm not at the system
> where postgresql is installed at the moment so I can't just try it)
Yes, provided the columns are the same data types (or you can cast them to make them the same)
>
> col1 and col3 are both DATE columns. col2 and col4 are both
> varchar(1).
>
> I want the ORDER BY to order the result of the UNION.
It does, per SQL spec. Nothing less would make sense if you ask me. :)
Terry Fielder
Manager Software Development and Deployment
Great Gulf Homes / Ashton Woods Homes
terry@greatgulfhomes.com
Fax: (416) 441-9085
>
> --
> Chris Green (chris@areti.co.uk)
>
> "Never ascribe to malice, that which can be explained by
> incompetence."
>
> ---------------------------(end of
> broadcast)---------------------------
> TIP 4: Don't 'kill -9' the postmaster
>