に問題があり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
助けてくださいありがとう!
に問題があり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
助けてくださいありがとう!
その理由は、列が文字列であるためです。右?
intにキャストしてみてください。
SELECT * FROM tableName ORDER BY CAST(colName AS INT) DESC
またはキャストせずに、列のデータ型をに変更して、INT
別のデータ型にキャストせずにレコードを直接並べ替えることができるようにします。
SELECT * FROM tableName ORDER BY colName DESC
これらの値はそうではないと思いint
ますvarchar
。したがって、タイプをに変更する必要がありますint
。あなたが使用できる限りCAST
:
SELECT stu_id
FROM dbo.student
ORDER BY CAST(stu_id AS int) DESC
これは、間違った(アルファベット順)+正しい(数値)順序のデモです。
試す
order by convert(int,id) desc
それはそれをする必要があります
列の型は数値ではなく文字列のようです。