在oracle中 “查询工资比部门30的所有员工的工资高的员工的姓名、工资、部门编号” 怎么搞?

2025-01-28 02:15:12
推荐回答(4个)
回答1:

你的意思是指查询比部门30中最高的工资的还高的员工吧。
select ename,deptno,sal
from emp
where sal> (
select max(sal)
from emp
where deptno=30);
要用max(sal)。

回答2:

(select sal from emp where deptno=30)
这个会有多条记录,所以错的的,楼上的是正确的

回答3:

select ename,sal,deptno from emp where sal>all(select sal from emp where deptno=30);
或者
select ename,sal,deptno from emp where sal>(select max(sal) from emp where deptno=30);

如果你要查询任意一个
select ename,sal,deptno from emp where sal>any(select sal from emp where deptno=30);
或者
select ename,sal deptno from emp where sal>(select min(sal) from emp where deptno=30);

回答4:

select * from emp a where not exists (select * from emp b where b.deptno=30 and a.sal<=b.sal) ;
你写的那个肯定错了,因为单值比较操作符不能处理多行值