2011-11-02 106 views
12
SELECT Departamentos.Nome_Dep, 
     Funcionarios.Nome AS Funcionario, 
     Funcionarios.Salario, 
     AVG(Funcionarios.Salario) OVER(PARTITION BY Departamentos.Nome_Dep) "Média por Departamento" 
     Salario - AVG(Funcionarios.Salario) OVER(PARTITION BY Departamentos.Nome_Dep) "Diferença de Salário" FROM Funcionarios 
INNER JOIN Departamentos 
    ON Funcionarios.ID_Dep = Departamentos.ID 
ORDER BY 5 DESC 

The Order By 5 is throwing me off。我从来没有喜欢它。排序按[colunmname]是,但按顺序[编号],从未见过。我把这篇文章拿掉了。ORDER BY 5 DESC是什么意思?

注意:这是T-SQL。

来源:Window Functions in SQL Server 2005, 2008, 2012

+3

注意这通常不是一个好的做法,因为有人可以很容易地添加一列而不用注意就更改顺序,但是我怀疑这是在这种情况下完成的,但是因为第5列是计算列而他们不想去在排序中重复调用的麻烦。顺便说一句,第4列和第5列之间缺少一个逗号。 – HLGEM

回答

22

这将在第5场在这个SELECT语句

+0

优秀。谢谢。我在看到你的答案后马上在文章中看到它。谢谢。 – dotnetN00b

4

顺序ORDER在结果集中的第5列。

4

排序结果集中降第五纵队。

0

按结果集中的第5个字段排序。

0

这是按相对位置排列

可以使用SQL ORDER BY子句按结果集中的相对位置进行排序,其中结果集中的第一个字段为1.下一个字段为2,依此类推。 在这里按结果集中的第5个字段排序。

通过关于sql order by http://www.techonthenet.com/sql/order_by.php