我们可以在 SQL 服务器中对超过 2 列执行排序吗

Can we perform order by on more than 2 columns in SQL Server

如果我们可以对两个以上的列执行排序,有点困惑。

结果如下:-

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

是的,你可以随心所欲地表演就像分组一样。

这里;

Select * from orderbytest order by FName ,LName asc,YearOfBirth desc

不是这样,当你不在字段后写任何关键字时,结果将按默认顺序列出。

简答 - 是。

当应用多个 order by 表达式时,结果按第一个排序。当多个行在第一个 order by expression 中具有相同的值时,它们将按第二个在内部排序。当多个行在表达式的第一和第二顺序中具有相同的值时,它们按第三顺序排序,依此类推。

在这里,您的所有行都具有前两个表达式的唯一组合,因此第三个表达式虽然仍然有效,但无关紧要。

是的,你可以。尝试此查询以了解不止一列的顺序:

select *
from
(
    select 'ashish' col1,1 col2
    union all
    select 'ashish',3
)base
order by col1 asc, col2 desc

这将按 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