我的计算机运行的查询是我无法使用ORDER升序排列数据BY ASC
select accountid from general order by accountid ASC
结果我得到的是排序
accountid
------------
1
1001
1002
10021
10026
1006
1007
为什么不正确排序?这是一个简单的查询,我完全失去了如何解决这个问题。
我的计算机运行的查询是我无法使用ORDER升序排列数据BY ASC
select accountid from general order by accountid ASC
结果我得到的是排序
accountid
------------
1
1001
1002
10021
10026
1006
1007
为什么不正确排序?这是一个简单的查询,我完全失去了如何解决这个问题。
列的类型必须是数字(int
,number
,bigint
等)键入..
貌似现在它是一个VARCHAR
类型列......这是排序像一本字典...
如果SolutionID是VARCHAR列,如果它有一个像SOL0,SOL1,SOL2,有些事情.... 那么,如果你有对列进行排序...用下面的代码
cast (substring(SolutionID,4,10) as integer) desc
试试这个,它的工作原理:
select accountid from general order by convert(int, accountid) ASC
我没有SQL的人,但如果ACCOUNTID是一个字符串类型,那不是排序升序排列?这种类型是不是你认为它是什么? – linuxuser27 2010-08-20 03:27:47
从理论上讲,你可以在选择列表和order-by子句中使用CAST(accountid AS INTEGER)'来获得你想要的数字顺序。但这会因'1008A'而失败。 – 2010-08-20 03:35:31