Re: Order By Question

Поиск
Список
Период
Сортировка
От Ian Harding
Тема Re: Order By Question
Дата
Msg-id 3A6CDC67.4A79076E@pakrat.com
обсуждение исходный текст
Ответ на Order By Question  (Tristan Colson <tristan_colson@pacbell.net>)
Список pgsql-sql
Tristan Colson wrote:

> This seems like the answer must be pretty easy, but I can't think of it:
>
> In the following statement:
>
> select field1 from my_table where field2 in (3, 1, 2);
>
> How can I modify this statement so that the record are returned in the
> order of first those records having field2 = 3, then field2 = 1, then
> field2 = 2.
> As it stands, I am getting them returned in the order of the value of
> field1.

You can't =;^)

If you add field 2 to the select list and order by it, you can get them in
1,2,3 or 3,2,1 order.

Alternatively, you could add a case statement to your query to add a column
that would be used just to order the data.  My syntax may be foobar but it
would be something like:

select field1,   CASE       WHEN field2 = 3 THEN 1       WHEN field2=1 THEN 2        WHEN field2=2 THEN 3   AS
orderfield
from my_table
where field2 in (3,1,2)
order by orderfield;

- Ian



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

Предыдущее
От: Tristan Colson
Дата:
Сообщение: Order By Question
Следующее
От: Ian Harding
Дата:
Сообщение: Re: Inserting and incrementing with MAX aggregate