SQlite условный заказ - PullRequest
       21

SQlite условный заказ

2 голосов
/ 27 июня 2011

У меня есть этот запрос:

  select id,number,name 
    from objects 
order by case number when 0 then 1 else -1 end asc

База данных представляет собой базу данных объектов с номерами. Если у объекта нет номера, его номер равен 0. Я хочу отсортировать по возрастанию числа, за исключением случая, когда число равно 0, и в этом случае сортировать по убыванию.

Похоже, что приведенный выше запрос сортирует по идентификатору, по умолчанию сортировка.

Спасибо.

1 Ответ

3 голосов
/ 27 июня 2011

Закрыть, но вы также забыли отсортировать по number:

  SELECT id,number,name 
    FROM objects 
ORDER BY CASE number WHEN 0 THEN 1 ELSE 0 END, number;
...