sql数据库降序排列问题(数据库降序排序)

说白了,SQL的执行顺序其实很简单。
首先按照你的要求排序,然后返回查询内容。
例如,如果您的查询是“SELECT TOP 1 0 FROM 表名 ORDER BY 排序列 DESC;”,它实际上意味着“从表名中选择排序列最大的前 1 0 条记录”。

我们先来说说最重要的事情。
当你看到“ORDER BY sort column DESC;”时,你实际上是在告诉数据库你需要按照排序列的降序对数据进行排序。
那么,如果表中有1 00条数据,列值为1 、2 、3 、4 9 、9 9 、1 00,那么加上DESC就得到9 1 到1 00,也就是最后十条记录。

还有一点,如果改成“ASC”,就会按照升序排序,所以会得到1 到1 0,也就是前几条记录。

一开始我以为DESC是降序排列,ASC是升序排列,后来发现错了。
事实上,DESC 是降序排列,ASC 是升序排列。
但具体执行时,数据库会先按照排序规则对整个表进行排序,然后取前1 0项。

还有另一个关键细节。
该查询不会考虑自动增长的 ID 列。
它只关心您指定的排序列。
因此,即使ID列自动增长,也不会影响最终结果。

实用的建议是,当你编写这样的查询时,最好确认排序列的数据类型和范围,以避免数据类型不匹配或数据范围过大导致的性能问题。
等等,还有一件事,如果你不确定排序列的数据类型,可以使用“SELECT DATA_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = '表名' AND COLUMN_NAME = '排序列';” 获取列的数据类型。

如何用SQL语句修改字段的排序规则

ORDER BY 子句语法:
必需:列名 [ASC|DESC] 选项:…n
示例: 1 . 按 seq_id 排序; -
默认升序 2 . 按 seq_id DESC 排序; -
清晰的降序 3 . 按 1 排序; -
默认升序,按结果集的第一个字段排序 4 . 按 1 、3 DESC、5 排序; -
第一个字段默认为升序,第三个字段默认为降序,第五个字段默认为升序
不要这样做:随意混合字段名称和数字索引。

实用提醒:优先使用字段名称并避免数字索引。