-2

我在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

请帮助谢谢!

4

4 回答 4

8

原因是该列是一个字符串。正确的?

尝试将其转换为 int,

SELECT * FROM tableName ORDER BY CAST(colName AS INT) DESC

或者不进行转换,将列的数据类型更改为INT,这样您就可以直接对记录进行排序而无需转换为其他数据类型,

SELECT * FROM tableName ORDER BY colName DESC
于 2013-03-13T16:08:11.033 回答
3

我假设这些值不是intbut varchar。因此,您应该将类​​型更改为int. 只要您可以使用CAST

SELECT stu_id
FROM dbo.student
ORDER BY CAST(stu_id AS int) DESC

是一个不正确(按字母顺序)+正确(数字)顺序的演示。

于 2013-03-13T16:08:45.337 回答
1

尝试

order by convert(int,id) desc

应该这样做

于 2013-03-13T16:08:46.007 回答
0

看起来您的列类型不是数字,而是字符串。

于 2013-03-13T16:07:54.097 回答