2010-06-07 97 views
0

我有我用一個簡單的排序SQL語句,如下面的排序問題的T-SQL

Select numbers 
From theTable 
Order By numbers 

我得到的回報是以下

1 
11 
12 
14 
2 
21 
22 
23 
3 
35 
37 
etc... 

我希望它按正常順序排列

1 
2 
3 
4 
5 
6 
etc... 

回答

4

您選擇的列不作爲數值存儲。在orderby之前,你需要將它轉換成某種數字,然後按照你想要的方式行事。

它應該是一樣簡單:

select numbers from order orderby cast(numbers as int) 

只要只要在該列中的所有值正常施放。

+0

第二個應該工作,只要沒有實際的文字字符偷偷進入數字字段。 – LittleBobbyTables 2010-06-07 19:32:26

+0

按順序將無法在重命名的列上工作。第二個例子會起作用,如果他的專欄中只有數字值。 – hgulyan 2010-06-07 19:33:07

+0

@LittleBobbyTables:如果有一封信來了,那麼1 10 11 2 21無論如何都是正確的順序。 – 2010-06-07 19:46:45

0

存儲數字的列的數據類型是什麼?轉換/轉換爲一個int,你應該得到你所期望的。