按多列排序应该是有顺序的
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
按多列排序是顺序类型还是非顺序..?
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