如果我们可以通过超过两列执行排序,那就有点困惑。
结果如下: -
Select *
from orderbytest
order by FName desc, LName desc, YearOfBirth desc
结果输出:
FName LName YearOfBirth
------------------------------------
Thomas More 1478
Thomas Jefferson 1826
Thomas Alva Edison 1847
Benjamin White 1600
Benjamin Franklin 1706
答案 0 :(得分:1)
简短回答 - 是的。
当应用多个order by
表达式时,结果按第一个表达式排序。当多个行按表达式在第一个顺序中具有相同的值时,它们在内部由第二个排序。当多个行按表达式在第一个和第二个顺序中具有相同的值时,它们按第三个排序,依此类推。
在这里,你的所有行都有前两个表达式的唯一组合,所以第三个表达式虽然仍然有效,但却无关紧要。
答案 1 :(得分:0)
是的,你可以按照你喜欢的方式表演。就像分组一样。
这里;
Select * from orderbytest order by FName ,LName asc,YearOfBirth desc
不是这样,当您在字段后面没有写任何关键字时,结果将按默认顺序列出。
答案 2 :(得分:0)
是的,你可以。尝试此查询以通过多列来理解订单:
select *
from
(
select 'ashish' col1,1 col2
union all
select 'ashish',3
)base
order by col1 asc, col2 desc
答案 3 :(得分:0)
这将按FName,LName,YearOfBirth
的降序分组SELECT FName, LName, YearOfBirth
FROM orderbytest
ORDER BY FName DESC, LName DESC, YearOfBirth DESC
升序:
SELECT FName, LName, YearOfBirth
FROM orderbytest
ORDER BY FName , LName , YearOfBirth