ANY和ALL(当不返回行时)



在Oracle 中

If a subquery returns zero rows, 
the condition [operator]ANY[subquery] evaluates to FALSE
the condition [operator]ALL[subquery] evaluates to TRUE

它基于哪个布尔逻辑或逻辑数学?

它没有什么异常——它只是实现了数学上的All和Exists运算符,其定义(用外行的话来说)是

给定一个集合M和一个谓词p,则

All m elem M (p) 
<=> each element of M satisfies the predicate p 
<=> there's no element in M that doesn't satisfy p

显然,空集也是如此,因为它根本不包含任何元素。

给定一个集合M和一个谓词p,则

Any m elem M (p) 
<=> there exists at least one element of M that satisfies the predicate p 
<=> for all elements of M, the inverse predicate !p is false

显然,对于空集来说,这是错误的,因为它根本不包含任何元素,因此至少没有一个元素满足谓词。它还很好地补充了All(m)的定义,因为

All(p) <=> !Any(!p)

其中CCD_ 1表示逻辑逆NOT。

相关内容

  • 没有找到相关文章

最新更新