为什么这两条语句返回的结果不一样
1.SELECT dname
FROM dept d
WHERE NOT EXISTS(SELECT'1' FROM emp WHERE deptno=d.deptno);
2.SELECT dname
FROM dept d
WHERE NOT EXISTS(SELECT count(empno) FROM emp WHERE deptno=d.deptno);
为什么这两条语句返回的结果不一样
1.SELECT dname
FROM dept d
WHERE NOT EXISTS(SELECT'1' FROM emp WHERE deptno=d.deptno);
2.SELECT dname
FROM dept d
WHERE NOT EXISTS(SELECT count(empno) FROM emp WHERE deptno=d.deptno);
count(empno)
即使没有符合条件的记录也会返回0
的。
而EXISTS
只判断有没有返回,所以2这句 NOT EXISTS 是始终为假的。