exists表示() 内子查询返回结果不为空,说明where条件成立就会执行sql语句;如果为空,表示where条件不成立,sql语句就不会执行。
not exists和 exists相反,子查询语句结果为空,则表示where条件成立,执行sql语句,负责不执行sql。
eg:
1.如果部门名称中含有字母A,则查询所有员工信息(使用exists)
select * from emp where exists (select * from dept where dname like '%A%' and deptno = emp.deptno) temp and deptno=temp.deptno;
结果为:
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80 800 20
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300