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);