在oracle中 “查询工资比部门30的所有员工的工资高的员工的姓名、工资、部门编号” 怎么搞?
selectename,sal,deptnofromempwheresal>(selectsalfromempwheredeptno=30)哪里错了??...
select ename,sal,deptno from emp where sal>(select sal from emp where deptno=30)
哪里错了?? 展开
哪里错了?? 展开
4个回答
展开全部
你的意思是指查询比部门30中最高的工资的还高的员工吧。
select ename,deptno,sal
from emp
where sal> (
select max(sal)
from emp
where deptno=30);
要用max(sal)。
select ename,deptno,sal
from emp
where sal> (
select max(sal)
from emp
where deptno=30);
要用max(sal)。
追问
"查询工资比部门30的任意一个员工工资高的员工姓名、工资、部门编号"
这个有怎么搞啊?
追答
其实就是比30部门最高的工资高就好了,你想如果最高的工资的都没有查询到得高,那不是比30部门任意一个都高么。
展开全部
(select sal from emp where deptno=30)
这个会有多条记录,所以错的的,楼上的是正确的
这个会有多条记录,所以错的的,楼上的是正确的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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);
或者
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);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from emp a where not exists (select * from emp b where b.deptno=30 and a.sal<=b.sal) ;
你写的那个肯定错了,因为单值比较操作符不能处理多行值
你写的那个肯定错了,因为单值比较操作符不能处理多行值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询