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

selectename,sal,deptnofromempwheresal>(selectsalfromempwheredeptno=30)哪里错了??... select ename,sal,deptno from emp where sal>(select sal from emp where deptno=30)
哪里错了??
展开
 我来答
a2159049
推荐于2017-11-24 · TA获得超过267个赞
知道答主
回答量:64
采纳率:0%
帮助的人:71.1万
展开全部
你的意思是指查询比部门30中最高的工资的还高的员工吧。
select ename,deptno,sal
from emp
where sal> (
select max(sal)
from emp
where deptno=30);
要用max(sal)。
追问
"查询工资比部门30的任意一个员工工资高的员工姓名、工资、部门编号"
这个有怎么搞啊?
追答
其实就是比30部门最高的工资高就好了,你想如果最高的工资的都没有查询到得高,那不是比30部门任意一个都高么。
zhengjun0407
2011-08-02 · TA获得超过219个赞
知道小有建树答主
回答量:140
采纳率:0%
帮助的人:125万
展开全部
(select sal from emp where deptno=30)
这个会有多条记录,所以错的的,楼上的是正确的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
卢燕馨
2012-04-07
知道答主
回答量:58
采纳率:0%
帮助的人:18.2万
展开全部
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);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
spiderrobot
2011-08-02 · TA获得超过871个赞
知道小有建树答主
回答量:930
采纳率:0%
帮助的人:573万
展开全部
select * from emp a where not exists (select * from emp b where b.deptno=30 and a.sal<=b.sal) ;
你写的那个肯定错了,因为单值比较操作符不能处理多行值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式