SQL: Как я могу заказать пустые и пустые записи в порядке? - PullRequest
9 голосов
/ 26 января 2012

Если в моей базе данных есть следующие записи:

ИД
1 [ноль]
2 [пустая строка]
3 Альфа
4 Браво
5Чарли

.. тогда как я могу упорядочить строки с именами вперед при использовании ORDER BY?

Если я использую ORDER BY Name, я получаю список выше, но на самом деле хочу:

3 Альфа
4 Браво
5 Чарли
1 [ноль]
2 ''

Ответы [ 4 ]

24 голосов
/ 26 января 2012
ORDER BY 
    CASE 
    WHEN Name IS NULL THEN 1 
    WHEN Name = ''    THEN 2 
    ELSE 3 
    END DESC, 
    Name ASC
2 голосов
/ 26 января 2012
ORDER BY 
CASE 
    WHEN Name IS NULL THEN 1 
    WHEN Name = '' THEN 2 
    ELSE 3
END DESC,
Name ASC
2 голосов
/ 26 января 2012

Вы можете сделать это так:

ORDER BY CASE WHEN Name IS NULL then 3 WHEN Name = '' THEN 2 ELSE 1 END, Name

Он будет упорядочен по номеру в первом регистре, а после слова по имени.

0 голосов
/ 26 января 2012

ЗАКАЗАТЬ (СЛУЧАЙ, КОГДА имя равно NULL THEN 1, Когда имя NULL THEN 2 ELSE 3 END) DESC

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...