如何在 SQL Server 中的单个查询中找到第五高的薪水
在 SQL Server 2005 和 2008 中,创建一个排名子选择查询,然后添加一个 where 子句,其中排名 = 5。
select
*
from
(
Select
SalesOrderID, CustomerID, Row_Number() Over (Order By SalesOrderID) as RunningCount
From
Sales.SalesOrderHeader
Where
SalesOrderID > 10000
Order By
SalesOrderID
) ranked
where
RunningCount = 5
这些在 SQL Server 2000 中工作
DECLARE @result int
SELECT TOP 5 @result = Salary FROM Employees ORDER BY Salary DESC
语法应该接近。我暂时无法测试。
或者你可以使用子查询:
SELECT MIN(Salary) FROM (
SELECT TOP 5 Salary FROM Employees ORDER BY Salary DESC
) AS TopFive
再次强调,如果语法完全正确,则不是肯定的,但该方法有效。
SELECT TOP 1 salary
FROM (
SELECT DISTINCT TOP n salary
FROM employee
ORDER BY salary DESC) a
ORDER BY salary
where n > 1 -- (n is always greater than one)
您可以使用此查询找到任意数量的最高薪水。
要从数据库中查找第五高薪水,查询是..
select MIN(esal) from (
select top 5 esal from tbemp order by esal desc) as sal
它的工作原理检查一下
SELECT MIN(Salary) FROM (
SELECT TOP 2 Salary FROM empa ORDER BY Salary DESC
) AS TopFive
工作正常,请使用。
最容易解决的是:
SELECT MIN(Salary) FROM (
SELECT Salary FROM empa ORDER BY Salary DESC limit 5
)TopFive
你可以尝试一些类似的事情:
select salary
from Employees a
where 5=(select count(distinct salary)
from Employees b
where a.salary > b.salary)
order by salary desc
以下查询可获取特定员工姓名后的最高薪水。
看看吧!
SELECT TOP 1 salary FROM (
SELECT DISTINCT min(salary) salary
FROM emp where salary > (select salary from emp where empname = 'John Hell')
) a
ORDER BY salary
select * from employee2 e
where 2=(select count(distinct salary) from employee2
where e.salary<=salary)
它的工作
您可以使用以下查询找到它:
select top 1 salary
from (select top 5 salary
from tbl_Employee
order by salary desc) as tbl
order by salary asc
您可以使用以下一个,它会有所帮助
SELECT MIN(Salary) As fifth_highest_salary FROM Employees WHERE Salary in (select top 5 Salary from Employees ORDER BY Salary DESC)