帮忙比较下两条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); 能查询出 ,但是不知道对不对 帮我检查下 顺便上面的语句错在哪里?
展开
1个回答
展开全部
第一句 (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),就行了~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询