我们可以在 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
如果我们可以对两个以上的列执行排序,有点困惑。
结果如下:-
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