SQL 教程

SQL 教程 SQL 简介 SQL 语法 SQL Select SQL Select Distinct SQL Where SQL And, Or, Not SQL Order By SQL Insert Into SQL Null Values SQL Update SQL Delete SQL Select Top SQL Min 和 Max SQL Count, Avg, Sum SQL Like SQL 通配符 SQL In SQL Between SQL 别名 SQL 联接 SQL Inner Join SQL Left Join SQL Right Join SQL Full Join SQL 自联接 SQL Union SQL Group By SQL Having SQL Exists SQL Any, All SQL Select Into SQL Insert Into Select SQL Case SQL Null 函数 SQL 存储过程 SQL 注释 SQL 运算符

SQL 数据库

SQL 创建数据库 SQL 删除数据库 SQL 数据库备份 SQL Create Table SQL Drop Table SQL Alter Table SQL 约束 SQL Not Null SQL Unique SQL Primary Key SQL Foreign Key SQL Check SQL Default SQL Index SQL 自动增量 SQL 日期 SQL 视图 SQL 注入 SQL 托管 SQL 数据类型

SQL 参考手册

SQL 关键字 MySQL 函数 SQL Server 函数 MS Access 函数 SQL 快速参考手册

SQL 实例

SQL 实例 SQL 测验 SQL 练习


SQL ANY 和 ALL 运算符

SQL ANY 和 ALL 运算符

ANY 和 ALL 运算符与 WHERE 或 HAVING 子句一起使用。

如果任何子查询值满足条件,则 ANY 运算符返回 true。

如果所有子查询值都满足条件,则 ALL 运算符返回 true。

ANY 语法

SELECT column_name(s)
FROM table_name
WHERE column_name operator ANY
(SELECT column_name FROM table_name WHERE condition);

ALL 语法

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

注释: 运算符必须是标准比较运算符 (=, <>, !=, >, >=, <, or <=).


演示数据库

以下是从 Northwind 示例数据库的 "Products" 表中选择的内容:

ProductID ProductName SupplierID CategoryID Unit Price
1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 - 12 oz bottles 19
3 Aniseed Syrup 1 2 12 - 550 ml bottles 10
4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22
5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.35

以及从 "OrderDetails" 表中选择的内容:

OrderDetailID OrderID ProductID Quantity
1 10248 11 12
2 10248 42 10
3 10248 72 5
4 10249 14 9
5 10249 51 40


SQL ANY 实例

如果任何子查询值满足条件,则 ANY 运算符返回 TRUE。

如果在 OrderDetails 表中找到 quantity=10 的任何记录,以下 SQL 语句将返回 TRUE 并列出产品名称:

实例

SELECT ProductName
FROM Products
WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);
亲自试一试 »

如果在 OrderDetails 表中发现任何数量大于99的记录,以下 SQL 语句将返回 TRUE 并列出产品名称:

实例

SELECT ProductName
FROM Products
WHERE ProductID = ANY (SELECT ProductID FROM OrderDetails WHERE Quantity > 99);
亲自试一试 »

SQL ALL 实例

如果所有子查询值都满足条件,则 ALL 运算符返回 TRUE。

如果 OrderDetails 表中的所有记录的数量都为10,则以下 SQL 语句将返回 TRUE 并列出产品名称(因此,本例将返回 FALSE,因为并非 OrderDetails 表中的所有记录的数量都为10):

实例

SELECT ProductName
FROM Products
WHERE ProductID = ALL (SELECT ProductID FROM OrderDetails WHERE Quantity = 10);
亲自试一试 »