SQL Server 运算符

SQL Server (Transact-SQL) ALL 运算符与 WHEREHAVING 子句。如果所有子查询值都满足条件,则返回 TRUE。

语法

在 SQL Server (Transact-SQL) 中使用 ALL 运算符的语法如下:

SELECT column1, column2, column3, ...
FROM table_name
WHERE column_name operator ALL
(SELECT column1, column2, ... 
FROM table_name WHERE condition); 
注意: 上述运算符必须是标准比较运算符(=、<>、!=、<、<=、> 或 >=) 。

示例:

考虑一个数据库,其中包含名为 Employee 和 Bonus_Paid 的表,并具有以下记录:

示例:

表 1: Employee 

EmpIDNameCityAgeSalary
1JohnLondon253000
2MarryNew York242750
3JoParis272800
4KimAmsterdam303100
5RameshNew Delhi283000
6HuangBeijing282800

表 2:Bonus_Paid 表

EmpIDBonus
1500
2400
3450
4550
5400
6600

要从Employee表中选择所有奖金低于500的员工,查询如下。

SELECT * FROM Employee
WHERE EmpID <> ALL
(SELECT EmpID 
FROM Bonus_Paid WHERE Bonus >= 500); 

子查询将产生以下结果:

EmpID
1
4
6

查询然后将EmpID值与所有子查询值进行比较,仅获取所有子查询值均返回 true 的结果。它将产生以下结果:

EmpIDNameCityAgeSalary
2MarryLondon242750
3JoLondon272800
5RameshNew Delhi283000