SQL Server 运算符

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

语法

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

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

示例:

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

示例:

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

表 2:Contact_Info 表

Phone_NumberEmpIDAddressGender
+1-80540980002Brooklyn, New York, USAF
+33-1479961013Grenelle, Paris, FranceM
+31-2011503194Geuzenveld, Amsterdam, NetherlandsF
+86-10997324586Yizhuangzhen, Beijing, ChinaM
+65-672348247Yishun, SingaporeM
+81-3577990728Koto City, Tokyo, JapanM

要从Employee表中选择男性员工的记录,查询如下。

SELECT * FROM Employee
WHERE EmpID = ANY
(SELECT EmpID 
FROM Contact_Info WHERE Gender = 'M'); 

子查询将产生以下结果:

EmpID
3
6
7
8

然后查询将 EmpID 值与子查询结果进行比较。由于满足条件的记录很少,因此返回 TRUE,并产生以下结果:

EmpIDNameCityAgeSalary
3JoParis272800
6HuangBeijing282800