Порядок SQL по " Нет` с нулями в конце
у меня есть запрос MySql, который заказывает мне результаты по no
столбец (int, может быть null).
Простой пример:
SELECT * FROM table ORDER BY no ASC
Я хотел бы получить resultset отсортированы как
1, 2, 3, 10, 52, 66, NULL, NULL, NULL
но я
NULL, NULL, NULL, 1, 2, 3, 10, 52, 66
возможно ли это с помощью SQL-запроса ?
6 ответов
можно использовать CASE
заявление для настройки заказа:
SELECT *
FROM table
ORDER BY case when no is null then 2 else 1 end, no
Это заказы на "nullableness" во-первых, и
SELECT * FROM table ORDER BY COALESCE(no,999999) ASC
просто замените 999999 чем-то большим, если ваши номера, естественно, больше.
хорошо, кажется, я понял:
SELECT * FROM table WHERE no IS NOT NULL ORDER BY no ASC
UNION
SELECT * FROM table WHERE no IS NULL
или есть лучший способ ?