`

二元值not in与in使用分析

    博客分类:
  • SQL
 
阅读更多
语句
select 'true' from dual where (1,2)  not in ((1,3),(3,null))
结果:true.
1找一个非null元素(范围比较目标项)开始首轮匹配,先匹配第一个元素
2比较元item的第1个元素为1,比较目标item的第1个元素分别为1,3,匹配比较目标item(1,3)成功,故首轮匹配有相等项
3首轮匹配有相等项,进行第2轮比较,限定第2轮比较范围为首轮匹配成功项的元素,结论(1,3),二轮匹配没有有相等项
4 查询结束,没有匹配到相等项,返回true


语句
select 'true' from dual where (2,1) not in ((3,3),(1,null))
结果:true.
1找一个非null元素开始首轮匹配,先匹配第一个元素
2比较元item的第一个元素2,比较目标item的第一个元素分别为 3,1,匹配没有相等项,故首轮匹配没有相等的元素
3首轮匹配没有相等项,短路第2轮比较,直接返回首轮匹配结果true

语句
select 'true' from dual where (2,3) not in ((1,3),(null,1))
结果:true.
1找一个非null元素开始首轮匹配,先匹配第2个
2比较元item的第2个元素为3,比较目标item的第2个元素分别为3,1,匹配比较目标item(1,3)相等,故首轮匹配有相等元素
3首轮匹配有相等项,进行第2轮比较,限定第2轮比较范围为首轮匹配成功项的元素,范围为(1,3)项,
4二轮比较元item的第1个元素2,比较范围目标item的第一个元素为1,匹配没有相等的元素
5查询结束,都没有匹配到相等项,返回true

select 'true' from dual where (2,3) not in ((1,3),(2,null))
结果:为空
1找一个非null元素开始首轮匹配,先匹配第1个
2比较元item的第1个元素为2,比较目标item的第2个元素分别为1,2,匹配比较目标item(2,null)相等,故首轮匹配有相等的元素
3首轮匹配有相等项,进行第2轮比较,限定第2轮比较范围为首轮匹配成功项的元素,范围为(2,null),
4二轮比较元item的第二个元素3比较范围目标item的第二个元素为null,如果与null比较,一律按照返回false来处理
5查询结束,返回false



in/not in在判断NULL时用的与=/<>一样的方式,即必须用is   null来判断,否则始终为失败。

总结:二元值not in的情况,比较步骤如下

术语定义
项:(1,3),(null,1)叫做项(item);
元素:1和3称为元素,归属于项(item)

1:找一个非null元素开始首轮匹配
2:首轮匹配没有相等元素,短路第二轮匹配,直接返回结果
3:首轮匹配有相等的元素,进行第二轮匹配,比较范围是首轮匹配相等项的元素,如果与null比较,一律按照返回false来处理,返回二轮结果作为总结果


in的情况,比较步骤如下
与null比较的时候,一律按照匹配不相等来处理,可以忽略掉不比较



分享到:
评论

相关推荐

    sd.rar_判断 一个 二元 关系 性质_判断自反

    4. **反对称性**:如果对于所有的\( (a, b) \in R \)且\( a \neq b \),都有\( (b, a) \notin R \),则关系R是反对称的。比如"父亲"关系,一个人不能同时是另一个人的父亲和儿子。 5. **传递性**:如果对于所有的\...

    matlab开发-binaryinverter

    3. 连接输入和输出:通过点击并拖动鼠标从Not模块的“In”端子到“Out”端子,创建一条连线,这将代表信号的输入和输出路径。 4. 添加Signal源和Scope模块:为了测试模型,我们需要提供输入信号并查看输出。添加...

    Microsoft Excel File Format

    微软Excel文件格式是电子表格软件Microsoft Excel使用的数据存储格式,其版本涵盖了从Excel 2.0到Excel 2003的多个版本。这一文件格式详细描述了Excel文档的基本结构,包括工作簿(Workbook)和工作表(Worksheet)...

    A Course in Financial Calculus

    ##### 4.1 股票价格不可微性 (Stock Prices Are Not Differentiable) - **不可微性**:解释了为什么股票价格通常被认为是不可微的。 - **随机过程**:强调了在处理股票价格时使用随机过程的重要性。 ##### 4.2 ...

    stata在统计与计量中的运用 实证分析处理 统计计量分析 数据分析 第13章-stata面板数据分析 共80页.pptx

    本章节主要介绍如何使用Stata软件进行面板数据分析,涵盖面板数据的基本操作、固定效应与随机效应模型、长面板模型、面板工具变量法、动态面板模型、面板数据的离散选择模型、面板数据的计数模型以及随机效应Tobit...

    信息论与编码姜丹习题答案

    《信息论与编码》是信息技术领域的一门重要课程,它主要研究如何高效、可靠地传输和存储信息。姜丹教授的教材是该领域的经典之作,习题答案则为学习者提供了检验理解、深化知识的宝贵资源。以下是根据标题和描述所...

    Lua与JS差异,简明教程

    Lua中的二元运算符与之相似,不同之处在于使用“^”表示幂运算,一元运算符“-”表示负号。另外,Lua中字符串的拼接使用两个点“..”操作符。 4. 关系操作符差异 在JavaScript中,关系操作符有全等“===”,不等“!...

    离散数学综合试题(2套)

    另一方面,对于\( x \in A \cap (B - C) \),则\( x \in A \)且\( x \in B - C \),意味着\( x \in A \)且\( x \in B \)同时\( x \notin C \),即\( x \in A \cap B \)且\( x \notin A \cap C \),从而\( x \in (A \...

    A Parity Reversing Involution on Plane Trees

    文章提到Wagner和Wang使用生成函数方法研究了Wiener指数和内路径长度模2的分布,这说明了平面树的内路径长度在模2下的分布特性与Wiener指数有相同之处。 6. 二分对应(bijection) 二分对应,即一一对应,指的是两...

    离散数学课本定义和定理.pdf

    - **补集**: \(A^c = \{x | x \in U \land x \notin A\}\),其中U为全集,表示不属于A的元素的集合。 - **对称差**: \(A \Delta B = (A - B) \cup (B - A)\),即A与B中独有的元素的集合。 **1.3 包含排斥原理** - ...

    Python实现通过解析域名获取ip地址的方法分析

    if item[4][0] not in ip_list: # 避免重复添加 IP 地址 ip_list.append(item[4][0]) except Exception as e: print(str(e)) # 输出异常信息 pass return ip_list print(get_ip_list("www.example.com")) # ...

    模糊数学教案01.ppt

    - **边界分明**:对于任何元素 \(x\),要么它属于集合 \(A\)(记作 \(x \in A\)),要么不属于(记作 \(x \notin A\))。 集合的表示方法有两种: - **枚举法**:\(A = \{x_1, x_2, \ldots, x_n\}\) - **描述法**:...

    iBATIS动态标签

    这些标签用于比较两个值,可以是属性值与静态值或属性值与另一个属性值之间的比较。包括: 1. `&lt;isEqual&gt;`:检查属性值是否等于静态值或另一个属性值。 2. `&lt;isNotEqual&gt;`:检查两者是否不相等。 3. `...

    经典面试算法题N道

    2. **更新最大值**:遍历数组,每次更新当前子数组的和,并与已知最大值进行比较,更新最大值。 **代码示例**(伪代码): ```plaintext function MaxSubArraySum(array): max_sum = current_sum = array[0] for...

    科大计算机复试笔试

    对于集合 \(S\) 上的二元关系 \(R_1\) 和 \(R_2\),合成关系 \(R_2R_1\) 定义为 \[ R_2R_1 = \{(a, c) | \exists b \in S, (a, b) \in R_1 \land (b, c) \in R_2\} \] 同时,二元关系的性质包括自反性、反自反性、...

    基于良序集方法的程序终止性证明

    - 反对称性:对于任意 \(a, b \in W\), 如果 \(a ) 则 \(b \not); - 反自反性:对于所有 \(a \in W\), 有 \(a \not)。 称 \(W\) 为具有关系 \() 的偏序集,通常表示为 \((W, &lt;)\)。 2. **良序集**:如果一个偏序...

    dfshgfjghkjlj

    在这个例子中,我们已经可以看到\((a, b), (b, c) \in R\),但\((a, c) \notin R\),因此需要添加\((a, c)\)来保持传递性。同样地,需要添加\((b, a)\)和\((c, b)\)来保持传递性。最终\(t(R) = R \cup \{(a, c), (b,...

    Python正确重载运算符的方法示例详解

    - **`+` (取正)**:通常情况下`+`运算符返回的值与原值相同,但在某些场景下可能会有所不同。可以通过定义`__pos__`方法实现取正行为。例如: ```python def __pos__(self): return Vector(self) ``` - **`~` ...

    离散数学-第四章-关系-4.1+4.2笛卡尔积+关系.pptx

    不在\(R\)中的任一序偶\(, b&gt;\)可记作\(, b&gt; \notin R\)或\(a \not R b\)。若\(aRb\),我们说\(a\)和\(b\)具有关系\(R\)。 - **定义4.6**:令\(R\)为二元关系,\(DR = \{x | \exists y(xRy)\}\)和\(RR = \{y | \...

    计算理论基础(德国大学计算机教材,英文版)

    集合$A_1$的元素表示为$2 \in A_1$,而4不在$A_1$中表示为$4 \notin A_1$。如果一个集合只包含有限个元素,则称其为有限集,并用$|A|$表示其大小。 - **无限集合**:无限集合不能像有限集合那样一一列举,通常会给...

Global site tag (gtag.js) - Google Analytics