具有特殊条件的订单

时间:2015-01-07 09:16:02

标签: sql sql-order-by

我有Table1与Column1:

Column1|
-------|
1 aaaa|
2 aaaa|
3 aaaa|
4 aaaa|
10 aaaa|
6 aaaa|
7 aaaa|
8 aaaa|
9 aaaa|
5 aaaa|

如果我查询:

Select * 
FROM Table1
Order By Column1

输出结果为:

1 aaaa
10 aaaa
2 aaaa  
3 aaaa
4 aaaa  
5 aaaa    
6 aaaa    
7 aaaa    
8 aaaa    
9 aaaa    

我想要的是:

1 aaaa 
2 aaaa  
3 aaaa  
4 aaaa   
5 aaaa    
6 aaaa    
7 aaaa    
8 aaaa    
9 aaaa
10 aaaa

我知道我可以通过在数字1前面添加0直到9来解决它。 但不幸的是,我不能在数据中做到这一点 - 它必须在查询或其他东西

3 个答案:

答案 0 :(得分:0)

使用" ASC"如下

Select * FROM `Table1` ORDER BY `Column1` ASC 

答案 1 :(得分:0)

试试这个:

Select *
FROM Table1
Order By cast(SUBSTRING (Column1,1,charindex(' ',Column1)-1) as int)

请检查此DEMO

答案 2 :(得分:0)

知道了:

SELECT C 
FROM Table_1 
ORDER BY CAST(Left(Column1, CHARINDEX(' ', Column1)) AS int)

谢谢大家