阅读量:3
在Oracle数据库中,NOT IN 和 IN 是两种用于过滤查询结果的子句,它们的使用场景和结果有所不同。
IN子句:IN子句用于筛选出在指定集合中的记录。它允许你指定一个值列表,然后查询会返回字段值在这些列表中的所有记录。
例如:
SELECT * FROM employees WHERE department_id IN (10, 20, 30);
这个查询将返回employees表中department_id为10、20或30的所有记录。
NOT IN子句:NOT IN子句用于筛选出不在指定集合中的记录。它同样允许你指定一个值列表,但查询会返回字段值不在这些列表中的所有记录。
例如:
SELECT * FROM employees WHERE department_id NOT IN (10, 20, 30);
这个查询将返回employees表中department_id不为10、20或30的所有记录。
查询结果差异:
- 当使用
IN子句时,如果某个记录的department_id值在指定的列表中(例如10、20、30),那么这条记录将被包含在查询结果中。 - 当使用
NOT IN子句时,如果某个记录的department_id值在指定的列表中(例如10、20、30),那么这条记录将不会被包含在查询结果中。
需要注意的是,当使用NOT IN子句时,如果指定的值列表为空(即没有值),那么查询结果可能不会返回任何记录,因为没有任何记录的字段值会等于空值。为了避免这种情况,可以使用NOT IN (SELECT column_name FROM table_name)的形式,这样即使值列表为空,查询也会返回所有记录。
以上就是关于“Oracle NotIn与In的查询结果差异”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm