从员工表中选择前 10 名薪水

新手上路,请多包涵

我写了这个 sql 查询:

 select first_name, salary
from employees
where salary in( select distinct top(10) salary from employees order by salary  disc );

当我运行它时,我得到了这个错误:

SQL 错误:ORA-00907:缺少右括号 00907。00000 -“缺少右括号”

什么可能导致错误?

原文由 Softwarex3 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 372
2 个回答

在 Oracle 中,Top-N 查询通常以这种方式执行:

 select * from (
select first_name, salary
from employees order by salary desc
) where rownum <= 10

这个给你前10名的薪水。

原文由 Kirill Leontev 发布,翻译遵循 CC BY-SA 3.0 许可协议

这将起作用

select emp_id, salary from orders
order by salary desc limit 10;

原文由 Sneha R 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进