oracle的in集合,oracle中in与not in集合中有空值问题
IN和NOT IN本质上都是OR运算,因而计算逻辑OR时处理NULL的方式不同,产生的结果也不同。
下面我们分析一下前面的三条语句
SQL> select deptno
2 from dept
3 where deptno in (10,50,null);
这里可以等价于where deptno=10 or deptno=50 or deptno=null,由于是or相连接,那么只要有一个条件为TRUE,整个就喂TRUE了。所以deptno为10的记录显示出来了。
SQL> select deptno
2 from dept
3 where deptno not in (10,50,null);
这里等价于where not (deptno=10 or deptno=50 or deptno=null),拿deptno=20的记录来举例吧。
not (20=10 or 20=50 or 20=null)
not(false or false or null)
not null
null
(以前只知道在where条件返回false的时候不成立,现在看来返回NULL的时候也不成立呀,下面是做的一个小实验可以证明这个猜想)
#####################
SQL> select * from dept
2 where 1=null;
no rows selected
#####################
SQL> select deptno
2 from dept
3 where deptno not in (10,50);
这里等价于where not (deptno=10 or deptno=50),依然拿deptno=20来举例。
not (20=10 or 20=50 )
not(false or false)
not false
true
注意:FALSE OR NULL=NULL ,而TRUE OR NULL=TRUE。
oracle的in集合,oracle中in与not in集合中有空值问题相关推荐
- 本地可以使用oracle吗,Oracle - PLS-00642:SQL语句中不允许使用本地集合类型
我是ORACLE编程中的新手,我试图将表列值与传入的数组进行比较,并且我在此过程中遇到了相当令人沮丧的时间.Oracle - PLS-00642:SQL语句中不允许使用本地集合类型 这是来自包头的类型 ...
- 牛客网Java刷题知识点之Java 集合框架的构成、集合框架中的迭代器Iterator、集合框架中的集合接口Collection(List和Set)、集合框架中的Map集合...
不多说,直接上干货! 集合框架中包含了大量集合接口.这些接口的实现类和操作它们的算法. 集合容器因为内部的数据结构不同,有多种具体容器. 不断的向上抽取,就形成了集合框架. Map是一次添加一对元素. ...
- Dataset:机器学习中常用数据集下载链接集合之详细攻略
Dataset:机器学习中常用数据集下载链接集合之详细攻略 目录 机器学习中常用数据集下载链接集合之详细攻略 sklearn.datasets数据集所有csv文件集合 seaborn-data数据集所 ...
- python中的集合set类型是可变的吗_[Python] Python数据类型(三)集合类型之set集合和frozenset集合...
1.集合基本概念 集合是0-n个对象引用的无序组合,集合中存储的元素不可重复,因此这些对象引用的引用的对象必须是可哈希运算的 . 1.python中提供了两种内置的集合类型:可变的set类型和固定的 ...
- php redis set集合操作,php对redis的set(集合)操作
<?phprequire ('redistest.php');/*** Class setcache*集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等,由于集合类型在Redis ...
- Python集合类型详解(一)——集合定义与集合操作符
今天继续给大家介绍Python相关知识,本文主要内容是Python集合类型定义与集合操作符. 一.集合类型定义 在Python中,集合是一种非常重要的组合数据类型.Python中的集合与数学中的集合非 ...
- [Python] Python数据类型(三)集合类型之set集合和frozenset集合
1.集合基本概念 集合是0-n个对象引用的无序组合,集合中存储的元素不可重复,因此这些对象引用的引用的对象必须是可哈希运算的 . 1.python中提供了两种内置的集合类型:可变的set类型和固定的f ...
- java集合和数组随你转换_java集合和数组互转
方法一:使用Arrays.asList()方法 String[] strs = {"one","two","three"}; List st ...
- oracle有索引的集合,oracle中记录和集合
* oracle复合数据类型 PL/SQL有两种复合数据结构:记录和集合.记录由不同的域组成,集合由不同的元素组成. */ /* 一.记录类型 类似C语言中的结构,有两种定义方式:显式定义和隐式定义. ...
- 数据集合 oracle,oracle集合
oracle集合 1初识集合 集合是oracle中的一种数据类型 存放一组数据类型相同的数据 集合组成 由下标和值组成 下标的类型包含数字(整数,pls_integer,binary_integer) ...
最新文章
- 艾伟:FCKeditor 配置、扩展
- 逆袭!BCH交易超越BTC
- linux nm工具 查看静动态库导出函数
- aop拦截mybatis执行sql_Java进阶架构之开源框架面试题系列:Spring+SpringMVC+MyBatis
- 新一代Notebook神器出现,Jupyter危险了!
- CRM and Saptest1 Fiori UI共存的一个典型例子
- 前端学习(2433):创建页面组件
- 论文浅尝 | 面向多语言语义解析的神经网络框架
- 关于Context []startup failed due to previous errors
- windows中mysql5.7中配置中文字符集和默认datadir
- 微信小程序-强制手机端更新
- 瑞泰信息携手大族数控,打造营销服务管理平台,夯实领先地位
- 《游戏学习》java实现连珠五子棋完整代码
- 项目管理:如何制作项目进度表
- REST Assured 使用详解
- HE4484E芯片资料
- POJ 1877 Flooded! G++
- elasticsearch通过logstash同步mysql数据(中文分词)
- ChatGPT介绍以及一些使用案例
- 计算机按键去抖动的方式,键盘去抖动原则和方法
热门文章
- 2020 年开发者生态报告:Python超越Java,Go、Kotlin强势崛起
- 深入理解Java中的volatile关键字
- 37岁程序员被裁,120天没找到工作,面试华为阿里均被拒,无奈降薪去小公司后懵了...
- linux下使用free命令查看实际内存占用(可用内存)
- jQuery动态增加表格一行和删除一行
- oracle 远程连接超时问题
- 业务场景下数据采集机制和策略
- Spring 框架基础(03):核心思想 IOC 编程说明,案例演示
- vue 1.0源代码重点难点分析
- Java 中 @Autowired与@Resource的区别