我有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来解决它。 但不幸的是,我不能在数据中做到这一点 - 它必须在查询或其他东西
答案 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)
谢谢大家