oracle EXISTS、IN、ANY、ALL
阿新 • • 發佈:2018-12-23
>ANY:比子查詢返回結果中的最小值(不包括最小值)大的資料。
select ename,sal from emp where deptno > any(select deptno from dept);
=ANY:與子查詢返回結果中的最大最小範圍內的資料(x<=ANY<=Y)(相當於IN操作符)。
select ename,sal from emp where deptno = any(select deptno from dept);
<ANY:比子查詢返回結果中的最大值(不包括最大值)都小的資料。
select ename,sal from emp where deptno < any(select deptno from dept);
>ALL:比子查詢返回結果中的最大值(不包括最大值)都大。
select ename, sal from emp where deptno > all(select deptno from dept);
<ALL :比子查詢返回結果中的最小值(不包括最小值)都小。
select ename, sal from emp where deptno < all(select deptno from dept);
NOT IN :與子查詢返回結果集中任何一個值不相等,注意當你NOT IN後面的查詢語句有空值時,使用NOT IN整個結果就會返回not rows selected(相當於<>ALL)。
select ename,sal from emp where deptno not in(select deptno from dept);
IN :與子查詢返回結果集中某個值相等的資料(相當於=ANY)。
select ename,sal from emp where deptno in(select deptno from dept);
EXISTS:子查詢至少返回一行時條件為true(第一個select 中有一條或多條記錄不與子查詢匹配也會顯示)。
select deptno, ename,sal from emp where exists(select deptno from dept);
NOT EXISTS:子查詢不返回任何一行時條件為true。
select deptno, ename,sal from emp where not exists(select deptno from dept);