SQL Server 运算符

SQL Server (Transact-SQL) EXISTS 运算符用于测试子查询中的记录是否存在。如果子查询返回一条或多条记录,则返回 true,否则返回 false。

语法

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

SELECT column1, column2, column3, ...
FROM table_name
WHERE EXISTS 
(SELECT column_name FROM table_name
WHERE condition); 

示例:

考虑一个包含名为 Employee 和 Contact_Info 包含以下记录:

表 1: Employee 

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

下面的SQL Server语句返回TRUE,并且女性员工的记录来自Employee 表。

SELECT * FROM Employee
WHERE EXISTS 
(SELECT EmpID FROM Contact_Info 
WHERE Employee.EmpID = Contact_Info.EmpID AND Gender = 'F'); 

这将产生如下所示的结果:

EmpIDNameCityAgeSalary
2MarryNew York242750
4KimAmsterdam303100

下面提到的 SQL服务器语句返回 TRUE 以及 Employee 表中的男性员工记录。

SELECT * FROM Employee
WHERE EXISTS 
(SELECT EmpID FROM Contact_Info 
WHERE Employee.EmpID = Contact_Info.EmpID AND Gender = 'M'); 

上述查询的结果将是:

EmpIDNameCityAgeSalary
3JoParis272800
6HuangBeijing282800