首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从工资表中找到第三或第n个最高工资?

如何从工资表中找到第三或第n个最高工资?
EN

Stack Overflow用户
提问于 2018-05-03 10:05:42
回答 2查看 0关注 0票数 0

如何以优化的方式从工资table(EmpID,EmpName,EmpSalary)中找到最高工资?

EN

回答 2

Stack Overflow用户

发布于 2018-05-03 18:21:49

使用ROW_NUMBERDENSE_RANK

代码语言:javascript
复制
WITH CTE AS
(
    SELECT EmpID, EmpName, EmpSalary,
           RN = ROW_NUMBER() OVER (ORDER BY EmpSalary DESC)
    FROM dbo.Salary
)
SELECT EmpID, EmpName, EmpSalary
FROM CTE
WHERE RN = @NthRow
票数 0
EN

Stack Overflow用户

发布于 2018-05-03 19:10:15

行号:

代码语言:javascript
复制
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)

子查询:

代码语言:javascript
复制
SELECT *
FROM Employee Emp1
WHERE (N-1) = (
               SELECT COUNT(DISTINCT(Emp2.Salary))
               FROM Employee Emp2
               WHERE Emp2.Salary > Emp1.Salary
               )

关键字:

代码语言:javascript
复制
SELECT TOP 1 salary
FROM (
      SELECT DISTINCT TOP n salary
      FROM employee
      ORDER BY salary DESC
      ) a
ORDER BY salary
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档