按多列排序应该是有顺序的

Order by multiple column is should be in squence

按多列排序是顺序类型还是非顺序..?

skill_id   student_id 
   1          23
   2          24
   5          26
   3          20
   7          29

我想问你的是我想按 2 列排序,它们就像

order by skill_id DESC,
student_id ASC

第一个查询中,我写了上面提到的

2nd 查询中我写了 order by student_id ASC,skill_id DESC

两者的结果是相同的还是不同的,如果差异,你能解释我如何..?

他们是不同的。它首先按第一列对结果进行排序。然后在与第一列具有相同值的组中,它按第二列排序。每列依此类推。

如果第一列没有任何重复项,ORDER BY 中的其余列将被忽略。

结果不同。 列的顺序在 order by 子句中很重要。 在您的具体示例中,第二列实际上没有意义,只有第一列没有意义,因为样本数据中的任何列都没有重复值。

SELECT *
FROM table
order by skill_id DESC,
student_id ASC


skill_id    student_id
7           29
5           26
3           20
2           24
1           23

SELECT *
FROM table 
order by student_id ASC, skill_id DESC

skill_id    student_id
3           20
1           23
2           24
5           26
7           29

如果一列中存在重复值,则排序依据中的第二列将控制如何对第二列进行排序。
以下是具有不同示例数据的相同查询:

SELECT *
FROM @T 
order by skill_id DESC,
student_id ASC


skill_id    student_id
7           9
7           29
5           6
5           26
3           0
3           20
2           2
2           24
1           3
1           23

SELECT *
FROM @T 
order by student_id ASC, skill_id DESC


skill_id    student_id
3           0
2           2
1           3
5           6
7           9
3           20
1           23
2           24
5           26
7           29

查询只读取 ORDER BY 中的第一个条件:

SELECT *
FROM table
ORDER BY skill_id DESC,
student_id ASC