SQL упорядочение по тексту ASC, показать цифры в последней позиции - PullRequest
5 голосов
/ 10 января 2011

У меня есть запрос SQL, и мне нужно упорядочить результат в ASC, но мне нужно, чтобы цифры и пробелы были в последней позиции результата, а не в первой.

SELECT title FROM movie ORDER BY title ASC

Использование кодавыше я получаю названия, начиная с [пробел], 0-9, A, B, C ... Мне нужна эта форма: A, B, C, ..., Z, [что-нибудь еще]

Спасибо за любую помощь.

Ответы [ 2 ]

6 голосов
/ 10 января 2011
ORDER BY CASE
           WHEN LOWER(LEFT(title, 1)) BETWEEN 'a' AND 'z' THEN 0
           ELSE 1
         END,
         title
1 голос
/ 10 января 2011

Это что-то вроде хака, но это должно сработать.

SELECT title FROM movie 
ORDER BY CASE WHEN title LIKE '[0-9]%' THEN 'ZZZ' + title ELSE title END ASC

Идея состоит в том, чтобы заставить ваше предложение order преобразовывать элементы, начиная с цифр, добавляя их с ZZZ.Что касается элементов, начинающихся с пробела, вы можете просто очистить их с помощью LTRIM.

...