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

Đơn đặt hàng bằng 5 đang loại bỏ tôi. Tôi chưa bao giờ thích nó. Đặt hàng Theo [colunmname] có, nhưng Order By [number], chưa từng thấy trước đây. Tôi đã rút bài này ra.ORDER BY 5 DESC có nghĩa là gì?

Lưu ý: Đây là T-SQL.

Nguồn: Window Functions in SQL Server 2005, 2008, 2012

+3

NOTE rằng đây thường không phải là một thực hành tốt vì ai đó có thể dễ dàng thêm cột và thay đổi thứ tự mà không nhận thấy, tôi nghi ngờ nó được thực hiện trong trường hợp này, vì cột 5 được tính cột và họ không muốn những rắc rối của việc lặp lại sự tính toán theo thứ tự. BTW có dấu phẩy bị thiếu giữa các cột 4 và 5 – HLGEM

Trả lời

22

này sẽ đặt hàng bởi trường thứ 5 trong câu lệnh SELECT này

+0

Tuyệt vời. Cảm ơn bạn. Tôi ngay lập tức nhìn thấy nó trong bài viết sau khi nhìn vào câu trả lời của bạn. Cảm ơn bạn. – dotnetN00b

4

Sắp xếp theo cột thứ 5 trong tập kết quả.

4

Đặt hàng theo cột thứ năm trong tập hợp kết quả giảm dần.

0

Đặt hàng theo trường thứ 5 trong tập hợp kết quả.

0

Đây là SẮP THEO ĐỊA CHỈ LIÊN QUAN.

Bạn có thể sử dụng mệnh đề SQL ORDER BY để sắp xếp theo vị trí tương đối trong tập kết quả, trong đó trường đầu tiên trong tập kết quả là 1. Trường tiếp theo là 2, v.v. Ở đây trong trường hợp này Đặt hàng theo trường thứ 5 trong tập hợp kết quả.

Đi qua http://www.techonthenet.com/sql/order_by.php về thứ tự sql theo.