首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在带有限制关键字的sql查询中使用多重order?

如何在带有限制关键字的sql查询中使用多重order?
EN

Stack Overflow用户
提问于 2018-09-29 07:27:41
回答 3查看 1.2K关注 0票数 0

我希望首先将结果集限制为n个顶级薪资,然后反转结果集并将其限制为1,从而获得表中的第n个最高薪资。

我使用了这个查询,结果出现了一个错误:-

代码语言:javascript
复制
select *
  from salaries
 where emp_no=(select * from salaries order by salary desc limit 2) order by salary asc limit 1;    

错误声明子查询返回多行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-09-29 07:38:13

有一种方法:

代码语言:javascript
复制
SELECT s.* FROM 
(SELECT * FROM `salaries` ORDER BY salary DESC LIMIT 2) s
 ORDER BY s.salary ASC LIMIT 1;

永远不要使用SELECT *,请参阅-is-evil

票数 2
EN

Stack Overflow用户

发布于 2018-09-29 08:04:26

如果您希望获得第二高的值,您可以使用:

代码语言:javascript
复制
SELECT *
FROM salaries
ORDER BY salary DESC
LIMIT 1,1;

db<>fiddle demo

票数 3
EN

Stack Overflow用户

发布于 2018-09-29 08:23:35

代码语言:javascript
复制
select * from salaries 
order by salary 
desc limit 1 offset 4;

https://www.db-fiddle.com/f/2itHSFs2enyNpJ3MK6Nxcz/0

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52566184

复制
相关文章

相似问题

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