SQL ANY 运算符

SQL ANY 运算符

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

如果子查询结果集中至少有一个值满足条件,则 ANY 运算符的求值结果为 TRUE。

ANY 语法

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY (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 ANY 示例

以下 SQL 语句将返回 ProductName,如果 OrderDetails 表中存在 Quantity 等于 10 的任何记录(这将返回 TRUE,因为 Quantity 列有一些值为 10):

实例

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

亲自试一试

以下 SQL 语句将返回 ProductName,如果 OrderDetails 表中存在 Quantity 大于 99 的任何记录(这将返回 TRUE,因为 Quantity 列有一些值大于 99):

实例

SELECT ProductName
FROM Products
WHERE ProductID = ANY (
  SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 99
);

亲自试一试

以下 SQL 语句将返回 ProductName,如果 OrderDetails 表中存在 Quantity 大于 1000 的任何记录(这将返回 FALSE,因为 Quantity 列没有大于 1000 的值):

实例

SELECT ProductName
FROM Products
WHERE ProductID = ANY
  (SELECT ProductID
  FROM OrderDetails
  WHERE Quantity > 1000);

亲自试一试