Oracle中的Exists、In、ANY、ALL

简介: Exists:子查询至少返回一行时条件为true。 Not Exists:子查询不返回任何一行时条件为true。 In:与子查询返回结果集中某个值相等。 Not In:与子查询返回结果集中任何一个值不相等。 >ANY:比子查询返回结果中的某个值大。 =ANY:与子查询返回结果中的某个值相等。 <ANY:比子查询返回结果中的某个值小。 >ALL:比子查询返回结

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)

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



相关文章
|
8月前
|
Oracle 关系型数据库
Oracle查询优化-union all 与空字符
【1月更文挑战第4天】【1月更文挑战第10篇】两个表中有重复数据时,空值与空字符串在UNION ALL中的使用中的注意点。
144 0
|
8月前
|
SQL Oracle 关系型数据库
Oracle查询优化-UNION和UNION ALL的使用
【1月更文挑战第4天】【1月更文挑战第11篇】UNION和UNION ALL的使用存在区别
295 0
|
监控 Oracle 关系型数据库
oracle性能监控脚本 Mother Of All Tuning Scripts (MOATS)
这个名字牛吗?Mother Of All Tuning Scripts (MOATS) 下载地址: https://github.com/oracle-developer/moats,下载后
114 0
|
Oracle 关系型数据库
Oracle Union Union All 对查询结果集操作
Oracle Union Union All 对查询结果集操作
150 0
Zp
|
SQL Oracle 关系型数据库
Oracle sql 批量插入 Insert all into
Oracle sql 批量插入 Insert all into
Zp
495 0
|
存储 Oracle 关系型数据库
Oracle存储过程迁移ODPS-03(专有云):ODPS1.0支持exists语法
专有云目前还有不少ODPS1.0版本,主要是应对V3之前的平台版本。这个版本的ODPS不支持exists语法,如何换种写法实现。
3028 0
|
Oracle 关系型数据库 数据库