使用:EXISTS (Transact-SQL)
指定一个子查询,测试行是否存在。
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)相关推荐
- Transact SQL 常用语句以及函数
Transact SQL 语 句 功 能 ======================================================================== --数据 ...
- 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 ...
- transact sql
结构化查询语言是美国国家标准协会和国际标准化组织定义的标准,而transact sql是microsoft公司对此标准的一个实现 它可以创建,维护,保护数据对象,并且可以操作对象中的数据,所以tran ...
- 交互式SQL(Transact SQL,TSQL)
交互式SQL(Transact SQL,TSQL) 它是SQL Server的查询语言.提供以下命令: · 创建和数据库对象. · 访问和修改数据. · 数据聚合(aggregation,又称聚集). ...
- Transact SQL 语 句
Transact SQL 语 句 功 能 ======================================================================== -- ...
- exists改写SQL,使其走正确的执行计划
数据库环境:SQL SERVER 2005 今天看到一条SQL,写得不是很复杂,返回7000多条数据,却执行了15s.SQL文本及各表的数据量如下: SELECT acinv_07.id_item , ...
- Transact -SQL 语句
Transact- SQL 概述 了解 SQL 结构化查询语言 Transact-SQL 语言是 SQL 的增强版本 种类 数据 定义 操纵 控制 常用 事务管理 流程控制 附加的语言元素 常量与变量 ...
- SQL Server中的几个方法和Transact SQL 常用语句以及函数[个人推荐]
--数据操作 SELECT --从数据库表中检索数据行和列 INSERT --向数据库表添加新数据行 DELETE --从数据库表中删除数据行 UPDATE --更新数据库表中的数据 -- ...
- transact sql mysql_Sql Server数据库常用Transact-SQL脚本(推荐)
Transact-SQL Transact-SQL(又称 T-SQL),是在 Microsoft SQL Server 和 Sybase SQL Server 上的 ANSI SQL 实现,与 Ora ...
- transact sql mysql_MySQL与Transact SQL(MS SQL Server)的SQL语句区别点滴(C++)
最近在写一个数据访问层,要求可以使用MySQL和MS SQL Server.html 烦劳今后开始,MySQL与MS SQL Server的大量不一致让人烦不胜烦,为了使其余人再也不犯本身工做过程当中 ...
最新文章
- 《mysql性能调优与架构设计》笔记: 一mysql 架构组成
- FILE操作:删除与需要拷贝文件同名的文件
- 机械错题集锦2017-12-21
- Thinkphp5.0快速入门笔记(2)
- 批量梯度下降 linux,梯度下降的三种形式BGD,SGD,MBGD(MSGD)
- 【转载】Meta http-equiv属性详解
- android开发出现的错误,android 开发 错误集锦
- jQuery.ajax success 与 complete 区别
- 5位数的数字黑洞是多少_每日一题[491]数字黑洞--Kaprekar常数
- linux mysql 没有密码忘记,在linux系统中,如果忘记了MySQL的root密码,有没有办法重新设置新密码呢?...
- php结束外部程序,PHP执行外部程序的方法
- 2018年预测:GPU数据库或是未来的数据库统治者!
- 规约转换装置的一些概念
- 头条 上传图片大小_遇到不会注册今日头条号,这么办?
- TCP、UDP、Socket、HTTP网络编程面试题(总结最全面的面试题)
- webpack 合并压缩_文章 - coolie PK webpack 之一:JS 文件的合并与压缩 - FED社区
- 设计思维(Design Thinking)
- wow.js插件,让滚动动画更简单,让生活更美好
- 互联网思维和项目管理
- [计算机组成原理]海明校验及其实现