我有一个varchar列的表,完全由数字填充。当我使用ORDER BY子句执行查询时,它按字母数字排序。如果我知道它们都是数字但不能将列更改为整数类型,我该如何对数字进行排序?
insert into table1 values(field1) ('1'), ('10'), ('2);
select * from table1 order by field1;
应该返回: 1,2,10
答案 0 :(得分:3)
您可以投射该字段:
insert into table1 values(field1) ('1'), ('10'), ('2');
select * from table1 order by cast(field1 as signed integer);