ALL¶
ALL子查询表达式的第一种形式如下:
all ::=
ALL 的这种形式的右手边是一个圆括弧括起来的子查询, 它必须只返回一列。左手边表达式将使用给出的operator 对子查询的结果的每一行进行一次计算和比较。 该操作符必须生成布尔结果。如果所有行的结果都为TRUE, (包括子查询没有返回任何行的特殊例子)。那么ALL的结果就是TRUE。 如果没有存在任何假值结果,那么结果是FALSE。
请注意如果没有运算失败但是至少有一个右手边行为该操作符的结果生成 NULL值,那么 ALL 构造的结果将是 NULL,而不是 TRUE。
和 EXISTS 一样,假设子查询将被运行完全是不明智的。
ALL子查询表达式的第二种形式如下:
all ::=
ALL 的这种形式的右手边是一个圆括弧括起来的子查询,它必须返回和左手边列表给出的表达式一样多的列。左手边表达式将使用给出的operator对子查询的结果的每一行进行一次计算和比较.目前系统只允许使用 = 和<>操作符处理逐行的 ALL 查询.如果所有子查询都是相等或者不相等的行,那么 ALL 的结果就是 TRUE.(包括子查询没有返回任何行的特殊例子).如果分别有任何不相等或者相等的行,那么结果是 FALSE。
ALL子查询表达式对NULL值的处理规则与ANY_SOME相同。