是否有类似的命令:
2nd highest salary from tbl_salary
或
4th highest salary from tbl_salary
?
我见过:
select salary
from tbl_salary t
where &n = (
select count(salary)
from(
select distinct salary
from tbl_salary
)where t.salary<=salary
);
它是如何工作的?
还有其他简单的方法可以获得结果吗?
答案 0 :(得分:14)
如果是基本查询,那么只需使用LIMIT:
-- get the 4th highest salary
SELECT salary FROM tbl_salary
ORDER BY salary DESC
LIMIT 3,1
答案 1 :(得分:7)
select * from employee order by salary desc limit 1,1
说明:limit x,y
答案 2 :(得分:6)
//表格的最高薪水
select salary from table order by salary desc limit 0,1
//获得第二高薪
select salary from table order by salary desc limit 1,1
使用此查询,您可以从表格中获得第n个工资....
答案 3 :(得分:4)
这是获得第n个最高值
结果的一种非常简单的方法把n = 2来获得第二高的薪水 pur n = 4得到第四高薪 等等...
这是查询
如果n = 2
select salary from tbl_salary e1
where 2 = (
select distinct(count(salary))
from tbl_salary e2
where e1.salary< e2.salary
)
祝你好运
答案 4 :(得分:2)
您可以使用限制条款来执行此操作:
select * from tbl_salary order by salary desc limit 2,1;
答案 5 :(得分:2)
我确信有更好的方法可以做到这一点,但是:
SELECT salary FROM tbl_salary ORDER BY salary DESC LIMIT n,1
其中n是你想要的位置 - 1(即获得第二高的薪水,这将是LIMIT 1,1)
答案 6 :(得分:1)
通过sal desc limit 1,1
从emp命令中选择sal