gpt4 book ai didi

sql - 显示最高工资持有者的姓名(不使用子查询)

转载 作者:行者123 更新时间:2023-12-01 12:35:21 24 4
gpt4 key购买 nike

假设有一张 table

Name  Salary
Joe 4000
Steve 6000

我可以做到这一点

select name from emp where salary = (select max(salary) from emp);

但有没有一种方法可以不使用子查询来做到这一点??请帮忙。

编辑:抱歉,我忘了说我使用的是 Oracle 10g,但 LIMIT 对它不起作用

最佳答案

你没有提到Oracle的版本。
在 Oracle 12 上有一个可以使用的新的低限制子句:

  SELECT name
FROM emp
ORDER BY salary desc
FETCH FIRST 1 ROWS ONLY;


文档中有示例:https://docs.oracle.com/database/121/SQLRF/statements_10002.htm#BABEAACC

在早期版本中,如果不使用子查询就无法完成,但如果您必须创建 View :

CREATE VIEW emp_ordered AS
SELECT *
FROM emp
ORDER BY salary desc;

然后以这种方式查询这个 View :

SELECT * FROM emp_ordered
WHERE rownum <=1

关于sql - 显示最高工资持有者的姓名(不使用子查询),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30388551/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com