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 的表,并具有以下记录:

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 Server 语句返回 TRUE,并且从 Employee 表中返回男性员工的记录。

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

此结果上面的查询将是:

EmpIDNameCityAgeSalary
3JoParis272800
6HuangBeijing282800