帮忙比较下两条SQL语句是否相同

6、找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料。给出答案是:SEL... 6、找出部门10中所有经理(MANAGER),部门20中所有办事员(CLERK),既不是经理又不是办事员但其薪金大于或等于2000的所有员工的详细资料。 给出答案是: SELECT * FROM emp WHERE (deptno=10 AND job='MANAGER') OR (deptno=20 AND job='CLERK') OR (deptno=10 AND job<>'MANAGER' AND deptno=20 AND job<>'CLERK' AND sal>=2000) ; 查询不出。有错误。 我的答案是:select * from emp where (deptno=10 AND job='MANAGER') OR (deptno=20 AND job='CLERK') or(deptno in(10,20)and job not in('MANAGER','CLERK')and sal >2000); 能查询出 ,但是不知道对不对 帮我检查下 顺便上面的语句错在哪里? 展开
 我来答
速度卡死41
2014-10-01 · 超过65用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:126万
展开全部
第一句 (deptno=10 AND job<>'MANAGER' AND deptno=20 AND job<>'CLERK' AND sal>=2000) 这里矛盾了,deptno等于10又要等于20,则显然是不合理的,这里不应该并在一起,而是要用括号再括起来,改成 ((deptno=10 AND job<>'MANAGER') or (deptno=20 AND job<>'CLERK') AND sal>=2000) 就可以了~ 你的答案,很正确, 中间sal >2000改成sal >=2000(题意是大于或等于2000),就行了~
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式