我们可以在SQL Server中超过2列执行排序吗?

时间:2015-08-06 06:29:21

标签: sql sql-server database select sql-order-by

如果我们可以通过超过两列执行排序,那就有点困惑。

结果如下: -

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

4 个答案:

答案 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