SQLite 运算符

SQLite EXISTS 运算符用于测试子查询中记录的存在性。如果子查询返回一条或多条记录,则返回 true,否则返回 false。

语法

在 SQLite 中使用 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

下面的 SQLite 语句返回 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

下面提到的 SQLite 语句返回 TRUE,并从 Employee 表中返回男性员工的记录.

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

上述查询的结果将是:

EmpIDNameCityAgeSalary
3JoParis272800
6HuangBeijing282800