一个编码字段为字符型:其中有将近一万多条数据如下:
字段名 Num
A0001
A0002
.
.
A9999
A10000
A10001执行查询语句按照Num排序,order by Num
结果为
A0001
A0002
。
。
A10000
A10001
A9999
编号为A9999的为最后一条数据,如何查询让A10001成为最后一条数据?也就是说按照数字的大小进行排序呢?
字段名 Num
A0001
A0002
.
.
A9999
A10000
A10001执行查询语句按照Num排序,order by Num
结果为
A0001
A0002
。
。
A10000
A10001
A9999
编号为A9999的为最后一条数据,如何查询让A10001成为最后一条数据?也就是说按照数字的大小进行排序呢?
严重同意。
另外,可以考虑将字符串临时转换为数字进行排序,例如,对于SQL Server,可以
select * from
(
select 'A0001' as value
union
select 'A0002' as value
union
select 'A100001' as value
) a
order by
convert(int,substring(value, 2, 100))
整形为1,2,3,4,5,6,7,8,9,10,11
字符形为1,10,11,2,3,4,5,6,7,8,9用CAST将数据库定义为字符型的F1字段,类型转换长整型,这样查询后就可以排序。
strSelect = 'select CAST(F1 AS int) as F2 from TABLE1 order by F2'
Access、SQLServer、Oracle常见SQL语句应用区别
http://blog.csdn.net/guanking/archive/2010/05/08/5569629.aspx