我有一個SQL查詢,我需要在ASC中排序結果,但我需要數字和空格在結果的最後一個位置,而不是第一個。通過文本ASC的SQL排序,顯示最後位置的數字
SELECT title FROM movie ORDER BY title ASC
使用上面的代碼,我得到了冠軍,起始自[空格],0-9,A,B,C ......我需要這種形式:A,B,C,...,Z, [其他]
感謝您的任何幫助。
我有一個SQL查詢,我需要在ASC中排序結果,但我需要數字和空格在結果的最後一個位置,而不是第一個。通過文本ASC的SQL排序,顯示最後位置的數字
SELECT title FROM movie ORDER BY title ASC
使用上面的代碼,我得到了冠軍,起始自[空格],0-9,A,B,C ......我需要這種形式:A,B,C,...,Z, [其他]
感謝您的任何幫助。
ORDER BY CASE
WHEN LOWER(LEFT(title, 1)) BETWEEN 'a' AND 'z' THEN 0
ELSE 1
END,
title
這是一個黑客,但它應該工作。
SELECT title FROM movie
ORDER BY CASE WHEN title LIKE '[0-9]%' THEN 'ZZZ' + title ELSE title END ASC
這個想法是讓您的訂單子句通過將它們與ZZZ預先匹配來轉換以數字開頭的項目。至於以空格開頭的項目,您可能只想用LTRIM清理它們。
我認爲zerkms的答案更好,建議你走這條路。我會留在這裏,以防萬一任何人想要一個更酷的選擇:-) – 2011-01-10 14:48:19
只有改變我讓它做的是'LEFT()`不被Sqlite識別,但工作很好。 – 2013-11-12 19:28:31