Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Làm thế nào để tìm mức lương tối đa thứ ba hoặc thứ n từ bảng lương?

Số hàng:

SELECT Salary,EmpName
FROM
  (
   SELECT Salary,EmpName,ROW_NUMBER() OVER(ORDER BY Salary) As RowNum
   FROM EMPLOYEE
   ) As A
WHERE A.RowNum IN (2,3)

Truy vấn phụ:

SELECT *
FROM Employee Emp1
WHERE (N-1) = (
               SELECT COUNT(DISTINCT(Emp2.Salary))
               FROM Employee Emp2
               WHERE Emp2.Salary > Emp1.Salary
               )

Từ khoá Hàng đầu:

SELECT TOP 1 salary
FROM (
      SELECT DISTINCT TOP n salary
      FROM employee
      ORDER BY salary DESC
      ) a
ORDER BY salary


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao lại sử dụng mệnh đề INCLUDE khi tạo chỉ mục?

  2. Chọn bộ xử lý cho SQL Server 2012

  3. Ví dụ về ROUND () trong SQL Server

  4. Lệnh Sql JOIN có ảnh hưởng đến hiệu suất không?

  5. Khóa ngoài cho khóa không phải khóa chính