oracle中多行子查询与多行操作符
1、多行子查询:子查询返回多条数据
2、多行操作符:
in : 取在集合中的元素
any : 和集合中任意一条数据比较
all : 和集合中所有数据比较
例: 查出工资比部门2任意员工高的人员信息:
select * from emp t where t.sal > any (select t0.sal from emp t0 where t0.deptno =‘2’)
效果等同于:
select * from emp t where t.sal > (select min(t0.sal) from emp t0 where t0.deptno =‘2’)’
3、多行子查询只能用多行操作符;
单行子查询只能用单行操作符
4、需要注意not in 和 in中null值
not in 中如果有空,如 a not in (‘1’,‘2’,null)可以简单理解为a =‘1’ and a=‘2’ and a=null ,查出结果则为空,所以在使用not in 时应特别注意集合中是否有 null, in (‘1’,‘2’,null) 可以简单理解为 a =‘1’ or a=‘2’ or a=null ,依然能够正确查询出结果。
oracle中多行子查询与多行操作符
最新推荐文章于 2023-05-23 15:45:52 发布