частично отсортировать поле базы данных - PullRequest
1 голос
/ 09 февраля 2012

Мне нужно отсортировать поле «имя», которое содержит некоторое имя, NULL и несколько пустых записей.Каким-то образом мне нужно отсортировать их, расположив все имя в алфавитном порядке сортировки сверху, и после этого должны появиться все строки, содержащие NULL, и после этого все строки, содержащие пробел, должны прийти.Например, моя таблица:

id   Name
1    NULL
2    NULL
3    
4    
5    Mobile
6    Apparel 
7    Shoes

Таким образом, результат должен выглядеть следующим образом:

6    Apparel    
5    Mobile
7    Shoes
1    NULL
2    NULL
3    
4    

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

1 Ответ

1 голос
/ 09 февраля 2012
SELECT Name 
FROM
(
 SELECT
   CASE 
     WHEN Name IS NULL THEN 1
     WHEN Name = '' THEN 2
     ELSE 0 END
   Sorter,
   Name
 FROM YourTable
) t
ORDER BY Sorter, Name

Или без подвыбора:

SELECT Name
FROM YourTable
ORDER BY
  CASE 
    WHEN Name IS NULL THEN 1
    WHEN Name = '' THEN 2
    ELSE 0 
  END,
  Name
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...