1. 程式人生 > >oracle EXISTS、IN、ANY、ALL

oracle EXISTS、IN、ANY、ALL

>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);