zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

Oracle中的Exists、In、ANY、ALL

Oracle in all exists any
2023-09-14 09:02:14 时间

Exists:子查询至少返回一行时条件为true。

Not Exists:子查询不返回任何一行时条件为true。

In:与子查询返回结果集中某个值相等。

Not In:与子查询返回结果集中任何一个值不相等。

ANY:比子查询返回结果中的某个值大。

=ANY:与子查询返回结果中的某个值相等。

ANY:比子查询返回结果中的某个值小。

ALL:比子查询返回结果中的所有值都大。

ALL :比子查询返回结果中的所有值都小。

1、查询与10号部门某个员工工资相等的员工信息。

select empno ,ename,sal from emp 

where sal in(select sal from emp where deptno=10)

下面这句话与上的语句效果一样

select empno ,ename,sal from emp 

where sal=any(select sal from emp where deptno=10)

效果如下图:


小注:

        =any()括号中即使出现重复的值,也不会报错,比如:

select empno ,ename,sal from emp 

where sal=any(2450.00,5000.00,5000.00)

2、查询比10号部门某个员工工资高的员工信息。

select empno ,ename,sal from emp 

where sal any(select sal from emp where deptno=10)

在emp表中工资的最小值为1300,下面这句话与上面语句的效果一样

select empno ,ename,sal from emp 

where sal 1300

效果如下图:


3、查询比10号部门所有员工工资高的员工信息。

select empno ,ename,sal from emp 

where sal all(select sal from emp where deptno=10)

效果如下图(没有查询到数据):