Re: UNION with ORDER BY -allowed?

From: John Sidney-Woollett <johnsw(at)wardbrook(dot)com>
To: chris(dot)green(at)isbd(dot)co(dot)uk
Cc: pgsql-general(at)postgresql(dot)org
Subject: Re: UNION with ORDER BY -allowed?
Date: 2004-12-02 15:09:30
Message-ID: 41AF302A.7090802@wardbrook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

wrap the whole statement in another select

select col1, col2, col5, col6 from (
SELECT
col1, col2, col5, col6
FROM
table
WHERE
col2 = 'X'
UNION
SELECT
col3, col4, col5, col6
FROM
table
WHERE
col4 = 'X'
) as t
order by coalesce(col1, col3);

John Sidney-Woollett

Chris Green wrote:

> 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)
>
> 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.
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message terry 2004-12-02 15:13:26 Re: UNION with ORDER BY -allowed?
Previous Message Chris Green 2004-12-02 14:56:18 UNION with ORDER BY -allowed?