我正在阅读有关 ANY 和 ALL 运算符的 Oracle 文档。我基本理解它们的用途,除了一个问题。文档中说:
ALL :
如果子查询返回零行,则条件评估为 TRUE。
ANY :
如果子查询返回零行,则条件评估为 FALSE。
这对我来说似乎不太合理。为什么对于空子查询,ALL 的结果会是 TRUE,而 ANY 的结果会是 FALSE 呢?
由于我在 SQL 方面相对较新,所以我认为这种行为一定有其使用场景,但对我来说确实很难理解。
那么,对于一个空集合,ANY 和 ALL 应该返回相同的值,不是吗?
ALL :
如果子查询返回零行,则条件评估为 TRUE。
ANY :
如果子查询返回零行,则条件评估为 FALSE。
这对我来说似乎不太合理。为什么对于空子查询,ALL 的结果会是 TRUE,而 ANY 的结果会是 FALSE 呢?
由于我在 SQL 方面相对较新,所以我认为这种行为一定有其使用场景,但对我来说确实很难理解。
那么,对于一个空集合,ANY 和 ALL 应该返回相同的值,不是吗?