SQL ALL 操作符

SQL ALL 运算符

ALL 运算符用于将值与子查询返回的每个值进行比较。

如果子查询结果集中的每个值都满足条件,则 ALL 运算符的求值结果为 TRUE。

ALL 运算符通常与 WHEREHAVING 语句一起使用。

ALL 语法

SELECT column_name(s)
FROM table_name
WHERE column_name operator ALL (subquery);

注意:运算符必须是标准比较运算符(=<>!=>>=<<=)。

演示数据库

以下是 Northwind 示例数据库中 Products 表中的片段:

ProductID ProductName Price
1 Chais 18.00
2 Chang 19.00
3 Aniseed Syrup 10.00
4 Chef Anton's Cajun Seasoning 22.00

以及 OrderDetails 表中的片段:

OrderDetailID ProductID Quantity
1 11 12
2 42 10
3 72 5
4 14 9

SQL ALL 示例

以下 SQL 语句将返回 ProductName,如果 OrderDetails 表中的所有记录的 Quantity 都等于 10。这当然会返回 FALSE,因为 Quantity 列有许多不同的值(不仅仅是值 10):

实例

SELECT ProductName
FROM Products
WHERE ProductID = ALL (
  SELECT ProductID
  FROM OrderDetails
  WHERE Quantity = 10
);

亲自试一试