在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。