我的計算機運行的查詢是我無法使用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