>=ALL 大于等于子查询结果中的所有值
<=ALL 小于等于子查询结果中的所有值
=ANY 等于子查询结果中的某个值
=ALL 等于子查询结果中的所有值
!=(或<>)ANY 不等于子查询结果中的某个值
!=(或<>)ALL 不等于子查询结果中的所有值
ANY 或 SOME 谓词,它们是同义字,来检索主查询中的记录,这些记录要满足在子查询中检索的任何记录的比较条件。下列示例将返回全部单价比任何以 25% 或更高的折扣卖出的产品高的产品:
使用 ALL 谓词只检索主查询中的这些记录,它们满足在子查询中检索的所有记录的比较条件。如果将前一个示例中的 ANY 改为 ALL,查询只会返回单价比全部以 25% 或更高的折扣卖出的产品高的产品。这是更多的限制。
EXISTS子查询
在 true/false 比较中使用 EXISTS 谓词(与可选的 NOT
保留字一道)来决定子查询是否会返回任何记录。EXISTS代表存在量词ヨ,带有EXISTS谓词的子查询不返回任何数据,只产生逻辑真值“true”或逻辑
假值可以利用EXISTS来判断x∈S、S⊆R、S=R、S∩R非空等是否成立。
使用规则
使用子查询的规则:
(1)子查询必须“自身就是一个完整的查询”。即,它必须至少包括一个SELECT子句和FROM子句。
(2)子查询
SELECT语句不能包括在ORDER BY子句中。因为ORDER BY字句只能对最终查询结果排序,如果显示的输出需要按照特定顺序显示,那么ORDER BY子句应该作为外部查询的最后一个子句列出。
(3)子查询“必须包括在一组括号中”,以便将它与外部查询分开。
(4)如果将子查询放在外部查询的WHERE或HAVING子句中,那么该子查询只能位于
比较运算符的“右边”。