Результат SQL отсортирован дважды в одном столбце

#sql #sql-order-by

#sql #sql-order-by

Вопрос:

Как мне создать sql-запрос, который упорядочивает все по возрастанию, что не равно 0, за которым следуют 0?

Итак, столбец содержит такие данные, как:

 col
----
2
4
0
7
0
8
  

… и я хочу, чтобы запрос возвращал:

 col
----
2
4
7
8
0
0
  

Спасибо!

Ответ №1:

 Select ...
From MyTable
Order By Case When Col = 0 Then 1 Else 0 End Asc, Col Asc
  

Ответ №2:

Используйте:

   SELECT ...
    FROM YOUR_TABLE t
ORDER BY CASE 
           WHEN t.col = 0 THEN 999999 
           ELSE t.col
         END 
  

Комментарии:

1. @Нитин Мидха: Правильно, но это пример