You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL中不使用limit函数如何查询第二高薪资对应的完整行数据

不使用LIMIT函数查询第二高薪资对应明细的实现方案

假设存储数据的表名为employee,包含Name、Salary两个字段,可通过以下两种常见方式实现需求,两种方式均支持查询多名同属第二高薪资的员工明细:

  • 方法一:嵌套子查询匹配第二高薪资
    先通过两层聚合查询得到第二高的薪资值,再匹配所有符合该薪资的员工记录:

    SELECT Name, Salary 
    FROM employee 
    WHERE Salary = (
      SELECT MAX(Salary) 
      FROM employee 
      WHERE Salary < (SELECT MAX(Salary) FROM employee)
    );
    
  • 方法二:自连接分组统计实现
    通过表自连接统计大于当前薪资的不同薪资等级数量,当数量为1时,当前薪资即为第二高:

    SELECT A.Name, A.Salary 
    FROM employee A
    LEFT JOIN employee B ON B.Salary > A.Salary
    GROUP BY A.Name, A.Salary
    HAVING COUNT(DISTINCT B.Salary) = 1;
    

如果仅需要返回第二高薪资的数值(无符合结果时返回NULL),可使用简化写法:

SELECT MAX(Salary) AS SecondHighestSalary 
FROM employee 
WHERE Salary < (SELECT MAX(Salary) FROM employee);

内容的提问来源于stack exchange,提问作者Mahantesh. N. Hadimani.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 23:36:04