where in(...) order by field in(...) desc. Сортировка не применяется

Lists: pgsql-ru-general
From: wDevil wDevil <wwdevil(at)gmail(dot)com>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: where in(...) order by field in(...) desc. Сортировка не применяется
Date: 2010-05-14 09:56:01
Message-ID: AANLkTinieTTg2PFDlCqkDRRM308GtXlJrIMzp8ROchZU@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

Всем привет.

Такой вопрос, почему два запроса выдают одинаково отсортированный список:
SELECT name
FROM firm
WHERE id IN(20436598,19294320)
ORDER BY id IN(20436598,19294320) ASC;

SELECT name
FROM firm
WHERE id IN(20436598,19294320)
ORDER BY id IN(20436598,19294320) DESC;

т.е сортировка не применяется.


From: dns <davildes(at)mail(dot)ru>
To: "wDevil wDevil" <wwdevil(at)gmail(dot)com>, pgsql-ru-general(at)postgresql(dot)org
Subject: Re: [pgsql-ru-general] where in(...) order by field in(...) desc. Сортировка не применяется
Date: 2010-05-14 10:02:48
Message-ID: op.vcowuzh4uhv2xj@dns
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

On Fri, 14 May 2010 13:56:01 +0400, wDevil wDevil <wwdevil(at)gmail(dot)com>
wrote:

> Всем привет.
>
> Такой вопрос, почему два запроса выдают одинаково отсортированный список:
> SELECT name
> FROM firm
> WHERE id IN(20436598,19294320)
> ORDER BY id IN(20436598,19294320) ASC;
>
> SELECT name
> FROM firm
> WHERE id IN(20436598,19294320)
> ORDER BY id IN(20436598,19294320) DESC;
>
> т.е сортировка не применяется.

Элементарно. По тому, что по всем строкам в order by получается true, а
соответственно и критерии для сортировки у всех строк одинаковые.

--
Best regards


From: silly sad <sad(at)bankir(dot)ru>
To: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: [pgsql-ru-general] where in(...) order by field in(...) desc. Сортировка не применяется
Date: 2010-05-14 10:25:35
Message-ID: 4BED251F.3070902@bankir.ru
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

On 05/14/10 13:56, wDevil wDevil wrote:
> Всем привет.
>
> Такой вопрос, почему два запроса выдают одинаково отсортированный список:
> SELECT name
> FROM firm
> WHERE id IN(20436598,19294320)
> ORDER BY id IN(20436598,19294320) ASC;
>
> SELECT name
> FROM firm
> WHERE id IN(20436598,19294320)
> ORDER BY id IN(20436598,19294320) DESC;
>
> т.е сортировка не применяется.

потому что copy-past


From: Alexey Klyukin <alexk(at)waki(dot)ru>
To: wDevil wDevil <wwdevil(at)gmail(dot)com>
Cc: pgsql-ru-general(at)postgresql(dot)org
Subject: Re: [pgsql-ru-general] where in(...) order by field in(...) desc. Сортировка не применяется
Date: 2010-05-14 10:34:02
Message-ID: AANLkTim1lmXhTBn8yyJRMWIcYwCFSsFmIYyiDinslKwN@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-ru-general

2010/5/14 wDevil wDevil <wwdevil(at)gmail(dot)com>:
> Всем привет.
> Такой вопрос, почему два запроса выдают одинаково отсортированный список:
> SELECT name
> FROM firm
> WHERE id IN(20436598,19294320)
> ORDER BY id IN(20436598,19294320) ASC;
> SELECT name
> FROM firm
> WHERE id IN(20436598,19294320)
> ORDER BY id IN(20436598,19294320) DESC;
> т.е сортировка не применяется.

ORDER BY записан неверно, WHERE уже гарантирует, что ORDER BY
упорядочит только выбранные WHERE значения. ORDER BY id [ASC|DESC]
сработает корректно,

--
Alexey Klyukin wwww.commandprompt.com
The PostgreSQL Company - Command Prompt, Inc