2013-11-26 2 views
3

У меня есть Chapters столбцов и имеет такие значения, какСортировка VARCHAR столбец

Chapter 1 
Chapter 2 
Chapter 11 
Chapter 12 
Chapter 3 
Chapter 4 

Когда я заказываю это отображается в

Chapter 1 
Chapter 11 
Chapter 12 
Chapter 2 
Chapter 3 
Chapter 4 

Мне нужно как этот

Chapter 1 
Chapter 2 
Chapter 3 
Chapter 4 
Chapter 11 
Chapter 12 
+0

Вы смогли выполнить эту работу? –

ответ

2

это Natural Sort. вы можете попробовать это? но нет идеального способа естественного сорта.

SELECT col 
FROM tab 
ORDER BY LENGTH(col), col; 

даже префикс не то же самое, сортировка может быть сделано в случае изменения, как это (я прав? Я думаю, что первый запрос работает хорошо в случае ФП в., Но не уверен, что ниже запроса вообще)

SELECT col 
FROM tab 
ORDER BY col, LENGTH(col), col; 
2

Предполагая, что у вас всегда есть «Глава» и после этого числа, вы можете попробовать это:

SELECT chapters 
FROM tab1 
ORDER BY LENGTH(chapters), chapters 

sqlfiddle demo

Смежные вопросы