2011-11-02 12 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 

La orden por 5 mí es tirar fuera. Nunca me ha gustado nada. Ordene por [colunmname] sí, pero ordene por [número], nunca antes visto. Saqué esto de un artículo.¿Qué significa ORDER BY 5 DESC?

Nota: Esto es T-SQL.

Fuente: Window Functions in SQL Server 2005, 2008, 2012

+3

Tenga en cuenta que esto no es normalmente una buena práctica como alguien fácilmente podría agregar una columna y cambiar el orden sin que se diera cuenta, sospecho que se hace en este caso, sin embargo, porque la columna 5 se calcula columna y ellos no quieren ir a la el problema de repetir la calulacion en el orden. Por cierto, falta una coma entre las columnas 4 y 5 – HLGEM

Respuesta

22

Esto ordenará por el campo en esta quinta instrucción SELECT

+0

Excelente. Gracias. Inmediatamente lo vi en el artículo después de ver tu respuesta. Gracias. – dotnetN00b

4

Orden por la quinta columna en el conjunto de resultados.

4

Ordenar por quinta columna en el conjunto de resultados descendente.

0

Ordene por el 5to campo en el conjunto de resultados.

0

Es el ORDENANDO POR POSICIÓN RELATIVA.

se puede utilizar el SQL ORDER BY para ordenar por posición relativa en el conjunto de resultados, donde el primer campo en el conjunto de resultados es 1. El siguiente campo es 2, y así sucesivamente. Aquí en este caso Ordene por el 5to campo en el conjunto de resultados.

Diríjase a http://www.techonthenet.com/sql/order_by.php sobre sql ordene por.