2010-06-07 48 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,你应该得到你所期望的。