Я только что запустил это в SQL Server Management Studio - обратите внимание, я перепутал строки во входных данных, чтобы они не были отсортированы в порядке:
create table #temp( ID Char(3));
insert into #temp (ID)
select '111' union
select '221';
select '0' union
select '21' union
select '1' union
select '11' union
select '211' union
select '121' union
select '2' union
select '22' union
select * from #temp order by ID;
Я получил следующий вывод:
ID
----
0
1
11
111
121
2
21
211
22
221
(10 row(s) affected)
Если вы получаете разные результаты, вы делаете что-то не так. Однако трудно сказать что, потому что вы ничего не опубликовали о том, как вы извлекаете данные из базы данных.
Редактировать: Некоторые пояснения автора указывают, что дисплей находится в TDBGrid
, прикрепленном к таблице с использованием Component Ace ABS Database
. Если это действительно так, то ответ состоит в том, чтобы создать индекс для указанного столбца, а затем установить свойство таблицы IndexName
для использования этого индекса.