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

Всем привет.

Такой вопрос, почему два запроса выдают одинаково отсортированный список:
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;

т.е сортировка не применяется.
On Fri, 14 May 2010 13:56:01 +0400, wDevil wDevil <wwdevil@gmail.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

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

2010/5/14 wDevil wDevil <wwdevil@gmail.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