用 ANY、SOME 或 ALL 修改的比较运算符

可以用 ALL 或 ANY 关键字修改引入子查询的比较运算符。SOME 是与 ANY 等效的 ISO 标准。

通过修改的比较运算符引入的子查询返回零个值或多个值的列表,并且可以包括 GROUP BY 或 HAVING 子句。这些子查询可以用 EXISTS 重新表述。

以 > 比较运算符为例,>ALL 表示大于每一个值。换句话说,它表示大于最大值。例如,>ALL (1, 2, 3) 表示大于 3。>ANY 表示至少大于一个值,即大于最小值。因此 >ANY (1, 2, 3) 表示大于 1。

若要使带有 >ALL 的子查询中的行满足外部查询中指定的条件,引入子查询的列中的值必须大于子查询返回的值列表中的每个值。

同样,>ANY 表示要使某一行满足外部查询中指定的条件,引入子查询的列中的值必须至少大于子查询返回的值列表中的一个值。

下面的查询提供一个由 ANY 修改的比较运算符引入的子查询的示例。它查找定价高于或等于任何产品子类别的最高定价的产品

posted @ 2014-06-09 13:20  xust  阅读(316)  评论(0编辑  收藏  举报