我在order by desc
. 例如,我想按 desc 排序 id 的值,即 1-10。这是示例代码
select stu_ID from student order by stu_ID desc
但从这里我会得到这个结果
9
8
7
6
5
4
3
2
10
1
我希望结果是这样的
10
9
8
7
6
5
4
3
2
1
请帮助谢谢!
我在order by desc
. 例如,我想按 desc 排序 id 的值,即 1-10。这是示例代码
select stu_ID from student order by stu_ID desc
但从这里我会得到这个结果
9
8
7
6
5
4
3
2
10
1
我希望结果是这样的
10
9
8
7
6
5
4
3
2
1
请帮助谢谢!
原因是该列是一个字符串。正确的?
尝试将其转换为 int,
SELECT * FROM tableName ORDER BY CAST(colName AS INT) DESC
或者不进行转换,将列的数据类型更改为INT
,这样您就可以直接对记录进行排序而无需转换为其他数据类型,
SELECT * FROM tableName ORDER BY colName DESC
我假设这些值不是int
but varchar
。因此,您应该将类型更改为int
. 只要您可以使用CAST
:
SELECT stu_id
FROM dbo.student
ORDER BY CAST(stu_id AS int) DESC
这是一个不正确(按字母顺序)+正确(数字)顺序的演示。
尝试
order by convert(int,id) desc
应该这样做
看起来您的列类型不是数字,而是字符串。