Фактический порядок результатов будет таким:
1
10
2
3
aaaa
cca
ccaa
ccaaaaa
cccc
И SQL Server сортирует его так, потому что он сортируется на основе их символьных значений.Другими словами, символ 1
предшествует 2
, так как 10
также предшествует 2
.
Так что вы получаете странную сортировку, потому что вы упорядочиваете по строковым значениям, не числовое.
РЕДАКТИРОВАТЬ : Пожалуйста, см. ответ Адриана на обходной путь.