-2

に問題がありorder by descます。たとえば、1 ~ 10 の id の値を降順で並べ替えたいとします。ここにサンプルコードがあります

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

これらの値はそうではないと思いintます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 に答える