按特殊条件订购
Order by with special condition
我有 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 来解决它。
但不幸的是我不能在数据中这样做 - 它必须在查询或其他东西中
使用"ASC"如下
Select * FROM `Table1` ORDER BY `Column1` ASC
试试这个:
Select *
FROM Table1
Order By cast(SUBSTRING (Column1,1,charindex(' ',Column1)-1) as int)
请检查这个DEMO
知道了:
SELECT C
FROM Table_1
ORDER BY CAST(Left(Column1, CHARINDEX(' ', Column1)) AS int)
谢谢大家
我有 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 来解决它。 但不幸的是我不能在数据中这样做 - 它必须在查询或其他东西中
使用"ASC"如下
Select * FROM `Table1` ORDER BY `Column1` ASC
试试这个:
Select *
FROM Table1
Order By cast(SUBSTRING (Column1,1,charindex(' ',Column1)-1) as int)
请检查这个DEMO
知道了:
SELECT C
FROM Table_1
ORDER BY CAST(Left(Column1, CHARINDEX(' ', Column1)) AS int)
谢谢大家