Re: UNION with ORDER BY -allowed?

Поиск
Список
Период
Сортировка
От John Sidney-Woollett
Тема Re: UNION with ORDER BY -allowed?
Дата
Msg-id 41AF302A.7090802@wardbrook.com
обсуждение исходный текст
Ответ на UNION with ORDER BY -allowed?  (Chris Green <chris@areti.co.uk>)
Ответы Re: UNION with ORDER BY -allowed?
Список 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.
>

В списке pgsql-general по дате отправления:

Предыдущее
От: Chris Green
Дата:
Сообщение: UNION with ORDER BY -allowed?
Следующее
От:
Дата:
Сообщение: Re: UNION with ORDER BY -allowed?