Путаница в порядке по предложению в SQL-сервере - PullRequest
0 голосов
/ 07 марта 2011

Я хочу использовать order by clause, чтобы вернуть значение столбца «id» моей таблицы в отсортированном порядке, например «1,2,3,4 ..», но следующий запрос возвращает значение id в порядке «1, 10, 100, 101, 102 ... '

select id from loginuser order by id;

Могу ли я узнать, могу ли я получить желаемый результат?

Ответы [ 3 ]

7 голосов
/ 07 марта 2011

Ваш столбец идентификатора имеет тип varchar, попробуйте привести к int в предложении order by, чтобы получить желаемый результат.

2 голосов
/ 07 марта 2011

если возможно, вы должны изменить тип столбца в вашей базе данных.

0 голосов
/ 07 марта 2011

Добавляя к ответу @ Greco, хорошей практикой является выставление порядка сортировки вызывающей стороне. В любом случае, использование выражения в предложении ORDER BY нарушает стандарты SQL. Поэтому рассмотрим эту альтернативу:

SELECT id, CAST(id AS INTEGER) AS sort_col  
  FROM loginuser 
 ORDER 
    BY sort_col;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...