oracle中多行子查询与多行操作符

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 ,依然能够正确查询出结果。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

45画美少女

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值