指定一个子查询,测试行是否存在。

Transact-SQL 语法约定

语法

EXISTS subquery

参数

subquery

受限制的 SELECT 语句。不允许使用 COMPUTE 子句和 INTO 关键字。有关详细信息,请参阅 SELECT (Transact-SQL) 中有关子查询的信息。

结果类型

Boolean

结果值

如果子查询包含任何行,则返回 TRUE。

示例

A. 在子查询中使用 NULL 仍然返回结果集

以下示例返回在子查询中指定了 NULL 的结果集,并且通过使用 EXISTS 仍求值为 TRUE。

复制代码
USE AdventureWorks ;
GO
SELECT DepartmentID, Name
FROM HumanResources.Department
WHERE EXISTS (SELECT NULL)
ORDER BY Name ASC ;

B. 比较使用 EXISTS 和 IN 的查询

以下示例比较了两个语义等同的查询。第一个查询使用 EXISTS,第二个查询使用 IN

复制代码
USE AdventureWorks ;
GO
SELECT DISTINCT c.FirstName, c.LastName, e.DepartmentID
FROM Person.Contact c JOIN HumanResources.Employee e
ON e.ContactID = c.ContactID WHERE EXISTS
(SELECT *
FROM HumanResources.Department d
WHERE e.DepartmentID = d.DepartmentID
AND d.Name = 'Purchasing') ;
GO

下面的查询使用 IN

复制代码
USE AdventureWorks ;
GO
SELECT DISTINCT c.FirstName, c.LastName, e.DepartmentID
FROM Person.Contact c JOIN HumanResources.Employee e
ON e.ContactID = c.ContactID WHERE DepartmentID IN
(SELECT DepartmentID
FROM HumanResources.Department d
WHERE d.Name = 'Purchasing') ;
GO

以下是其中任一查询的结果集。

复制代码
FirstName                 LastName                  DepartmentID
------------------------- ------------------------- ------------
Annette                   Hill                      5
Arvind                    Rao                       5
Ben                       Miller                    5
Eric                      Kurjan                    5
Erin                      Hagins                    5
Frank                     Pellow                    5
Fukiko                    Ogisu                     5
Gordon                    Hee                       5
Linda                     Meisner                   5
Mikael                    Sandberg                  5
Reinout                   Hillmann                  5
Sheela                    Word                      5           (12 row(s) affected)

C. 比较使用 EXISTS 和 = ANY 的查询

以下示例显示两个查找其名称与供应商名称相同的商店的查询。第一个查询使用 EXISTS,第二个查询使用 = ANY

复制代码
USE AdventureWorks ;
GO
SELECT DISTINCT s.Name
FROM Sales.Store s
WHERE EXISTS
(SELECT *
FROM Purchasing.Vendor v
WHERE s.Name = v.Name) ;
GO

下面的查询使用 = ANY

复制代码
USE AdventureWorks ;
GO
SELECT DISTINCT s.Name
FROM Sales.Store s
WHERE s.Name = ANY
(SELECT v.Name
FROM Purchasing.Vendor v ) ;
GO

D. 比较使用 EXISTS 和 IN 的查询

以下示例显示查找以 P 开头的部门员工的查询。

复制代码
USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName, e.Title
FROM Person.Contact c JOIN HumanResources.Employee e
ON e.ContactID = c.ContactID WHERE EXISTS
(SELECT *
FROM HumanResources.Department d
WHERE e.DepartmentID = d.DepartmentID
AND d.Name LIKE 'P%');
GO

下面的查询使用 IN

复制代码
USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName, e.Title
FROM Person.Contact c JOIN HumanResources.Employee e
ON e.ContactID = c.ContactID WHERE DepartmentID IN
(SELECT DepartmentID
FROM HumanResources.Department
WHERE Name LIKE 'P%');
GO

E. 使用 NOT EXISTS

NOT EXISTS 的作用与 EXISTS 正相反。如果子查询没有返回行,则满足 NOT EXISTS 中的 WHERE 子句。以下示例查找不在部门中且姓名以 P 开头的员工。

复制代码
USE AdventureWorks;
GO
SELECT c.FirstName, c.LastName, e.Title
FROM Person.Contact c JOIN HumanResources.Employee e
ON e.ContactID = c.ContactID WHERE NOT EXISTS
(SELECT *
FROM HumanResources.Department d
WHERE e.DepartmentID = d.DepartmentID
AND d.Name LIKE 'P%')
ORDER BY LastName, FirstName
GO

下面是结果集:

复制代码
FirstName                      LastName                       Title
------------------------------ ------------------------------ ------------
Syed                           Abbas                          Pacific Sales Manager
Hazem                          Abolrous                       Quality Assurance Manager
Humberto                       Acevedo                        Application Specialist
Pilar                          Ackerman                       Shipping & Receiving Superviso
François                       Ajenstat                       Database Administrator
Amy                            Alberts                        European Sales Manager
Sean                           Alexander                      Quality Assurance Technician
Pamela                         Ansman-Wolfe                   Sales Representative
Zainal                         Arifin                         Document Control Manager
David                          Barber                         Assistant to CFO
Paula                          Barreto de Mattos              Human Resources Manager
Shai                           Bassli                         Facilities Manager
Wanida                         Benshoof                       Marketing Assistant
Karen                          Berg                           Application Specialist
Karen                          Berge                          Document Control Assistant
Andreas                        Berglund                       Quality Assurance Technician
Matthias                       Berndt                         Shipping & Receiving Clerk
Jo                             Berry                          Janitor
Jimmy                          Bischoff                       Stocker
Michael                        Blythe                         Sales Representative
David                          Bradley                        Marketing Manager
Kevin                          Brown                          Marketing Assistant
David                          Campbell                       Sales Representative
Jason                          Carlson                        Information Services Manager
Fernando                       Caro                           Sales Representative
Sean                           Chai                           Document Control Assistant
Sootha                         Charncherngkha                 Quality Assurance Technician
Hao                            Chen                           HR Administrative Assistant
Kevin                          Chrisulis                      Network Administrator
Pat                            Coleman                        Janitor
Stephanie                      Conroy                         Network Manager
Debra                          Core                           Application Specialist
Ovidiu                         Crãcium                        Sr. Tool Designer
Grant                          Culbertson                     HR Administrative Assistant
Mary                           Dempsey                        Marketing Assistant
Thierry                        D'Hers                         Tool Designer
Terri                          Duffy                          VP Engineering
Susan                          Eaton                          Stocker
Terry                          Eminhizer                      Marketing Specialist
Gail                           Erickson                       Design Engineer
Janice                         Galvin                         Tool Designer
Mary                           Gibson                         Marketing Specialist
Jossef                         Goldberg                       Design Engineer
Sariya                         Harnpadoungsataya              Marketing Specialist
Mark                           Harrington                     Quality Assurance Technician
Magnus                         Hedlund                        Facilities Assistant
Shu                            Ito                            Sales Representative
Stephen                        Jiang                          North American Sales Manager
Willis                         Johnson                        Recruiter
Brannon                        Jones                          Finance Manager
Tengiz                         Kharatishvili                  Control Specialist
Christian                      Kleinerman                     Maintenance Supervisor
Vamsi                          Kuppa                          Shipping & Receiving Clerk
David                          Liu                            Accounts Manager
Vidur                          Luthra                         Recruiter
Stuart                         Macrae                         Janitor
Diane                          Margheim                       Research & Development Enginee
Mindy                          Martin                         Benefits Specialist
Gigi                           Matthew                        Research & Development Enginee
Tete                           Mensa-Annan                    Sales Representative
Ramesh                         Meyyappan                      Application Specialist
Dylan                          Miller                         Research & Development Manager
Linda                          Mitchell                       Sales Representative
Barbara                        Moreland                       Accountant
Laura                          Norman                         Chief Financial Officer
Chris                          Norred                         Control Specialist
Jae                            Pak                            Sales Representative
Wanda                          Parks                          Janitor
Deborah                        Poe                            Accounts Receivable Specialist
Kim                            Ralls                          Stocker
Tsvi                           Reiter                         Sales Representative
Sharon                         Salavaria                      Design Engineer
Ken                            Sanchez                        Chief Executive Officer
Jos?                          Saraiva                        Sales Representative
Mike                           Seamans                        Accountant
Ashvini                        Sharma                         Network Administrator
Janet                          Sheperdigian                   Accounts Payable Specialist
Candy                          Spoon                          Accounts Receivable Specialist
Michael                        Sullivan                       Sr. Design Engineer
Dragan                         Tomic                          Accounts Payable Specialist
Lynn                           Tsoflias                       Sales Representative
Rachel                         Valdez                         Sales Representative
Garrett                        Vargar                         Sales Representative
Ranjit                         Varkey Chudukatil              Sales Representative
Bryan                          Walton                         Accounts Receivable Specialist
Jian Shuo                      Wang                           Engineering Manager
Brian                          Welcker                        VP Sales
Jill                           Williams                       Marketing Specialist
Dan                            Wilson                         Database Administrator
John                           Wood                           Marketing Specialist
Peng                           Wu                             Quality Assurance Supervisor
(91 row(s) affected)

转载于:https://www.cnblogs.com/caoxch/archive/2006/11/30/577432.html

使用:EXISTS (Transact-SQL)相关推荐

  1. Transact SQL 常用语句以及函数

    Transact SQL  语 句 功 能  ======================================================================== --数据 ...

  2. T-SQL命令性能比较– NOT IN与SQL NOT EXISTS与SQL LEFT JOIN与SQL EXCEPT

    This articles gives you a performance comparison for NOT IN, SQL Not Exists, SQL LEFT JOIN and SQL E ...

  3. transact sql

    结构化查询语言是美国国家标准协会和国际标准化组织定义的标准,而transact sql是microsoft公司对此标准的一个实现 它可以创建,维护,保护数据对象,并且可以操作对象中的数据,所以tran ...

  4. 交互式SQL(Transact SQL,TSQL)

    交互式SQL(Transact SQL,TSQL) 它是SQL Server的查询语言.提供以下命令: · 创建和数据库对象. · 访问和修改数据. · 数据聚合(aggregation,又称聚集). ...

  5. Transact SQL 语 句

    Transact SQL   语 句 功 能  ======================================================================== -- ...

  6. exists改写SQL,使其走正确的执行计划

    数据库环境:SQL SERVER 2005 今天看到一条SQL,写得不是很复杂,返回7000多条数据,却执行了15s.SQL文本及各表的数据量如下: SELECT acinv_07.id_item , ...

  7. Transact -SQL 语句

    Transact- SQL 概述 了解 SQL 结构化查询语言 Transact-SQL 语言是 SQL 的增强版本 种类 数据 定义 操纵 控制 常用 事务管理 流程控制 附加的语言元素 常量与变量 ...

  8. SQL Server中的几个方法和Transact SQL 常用语句以及函数[个人推荐]

    --数据操作   SELECT --从数据库表中检索数据行和列  INSERT --向数据库表添加新数据行  DELETE --从数据库表中删除数据行  UPDATE --更新数据库表中的数据  -- ...

  9. transact sql mysql_Sql Server数据库常用Transact-SQL脚本(推荐)

    Transact-SQL Transact-SQL(又称 T-SQL),是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 实现,与 Ora ...

  10. transact sql mysql_MySQL与Transact SQL(MS SQL Server)的SQL语句区别点滴(C++)

    最近在写一个数据访问层,要求可以使用MySQL和MS SQL Server.html 烦劳今后开始,MySQL与MS SQL Server的大量不一致让人烦不胜烦,为了使其余人再也不犯本身工做过程当中 ...

最新文章

  1. 《mysql性能调优与架构设计》笔记: 一mysql 架构组成
  2. FILE操作:删除与需要拷贝文件同名的文件
  3. 机械错题集锦2017-12-21
  4. Thinkphp5.0快速入门笔记(2)
  5. 批量梯度下降 linux,梯度下降的三种形式BGD,SGD,MBGD(MSGD)
  6. 【转载】Meta http-equiv属性详解
  7. android开发出现的错误,android 开发 错误集锦
  8. jQuery.ajax success 与 complete 区别
  9. 5位数的数字黑洞是多少_每日一题[491]数字黑洞--Kaprekar常数
  10. linux mysql 没有密码忘记,在linux系统中,如果忘记了MySQL的root密码,有没有办法重新设置新密码呢?...
  11. php结束外部程序,PHP执行外部程序的方法
  12. 2018年预测:GPU数据库或是未来的数据库统治者!
  13. 规约转换装置的一些概念
  14. 头条 上传图片大小_遇到不会注册今日头条号,这么办?
  15. TCP、UDP、Socket、HTTP网络编程面试题(总结最全面的面试题)
  16. webpack 合并压缩_文章 - coolie PK webpack 之一:JS 文件的合并与压缩 - FED社区
  17. 设计思维(Design Thinking)
  18. wow.js插件,让滚动动画更简单,让生活更美好
  19. 互联网思维和项目管理
  20. [计算机组成原理]海明校验及其实现

热门文章

  1. 3dmax快速实现一个逼真地毯效果
  2. 1028 大数乘法 V2(NTT or FTT)
  3. 谷歌浏览器如何配置SSL证书
  4. 时光里,我们都是赶路人
  5. 网上书店系统/书店管理系统的设计与实现
  6. 日本经验丨被忽视的老年玩具市场需求潜力巨大,独家解析产品创新三大方向
  7. Elasticsearch之高亮进阶-高性能高亮器, 让Elasticsearch飞一会儿
  8. 深度学习模型轻量化(上)
  9. VMware Ubuntu18.04与WIN7共享目录
  10. MySQL数据库课程设计_什么是数据库?如何学习数据库?