EXCEPT操作符的工作方式与INTERSECT操作符相反。产生的最终结果集只包含在第1个查询中返回而不在第2个查询中返回的值。例如,下面的语句返回在表Employees1而不在表Employees2的值: SELECT BusinessEntityID, FirstName, LastName FROM Employees1 EXCEPT SELECT BusinessEntityID, FirstName, LastName FROM Employees2; 我们可以从下面的结果集看到,只有对应于Busines……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
EXCEPT操作符的工作方式与INTERSECT操作符相反。产生的最终结果集只包含在第1个查询中返回而不在第2个查询中返回的值。例如,下面的语句返回在表Employees1而不在表Employees2的值:
SELECT BusinessEntityID, FirstName, LastName FROM Employees1 EXCEPT SELECT BusinessEntityID, FirstName, LastName FROM Employees2; |
我们可以从下面的结果集看到,只有对应于BusinessEntityID值为1和2的记录,而没有值为3和4的记录:
BusinessEntityID | FirstName | LastName |
---------------- | --------- | ----------------- |
1 | Ken | Sánchez |
2 | Terri | Duffy |
如果想要返回表Employees2的记录,而不是表Employees1的记录,我们必须将表的顺序调转,如下所示:
SELECT BusinessEntityID, FirstName, LastName FROM Employees2 EXCEPT SELECT BusinessEntityID, FirstName, LastName FROM Employees1; |
现在结果只包含对应于BusinessEntityID值为5和6的记录:
BusinessEntityID | FirstName | LastName |
---------------- | --------- | ----------------- |
5 | Gail | Erickson |
6 | Jossef | Goldberg |
从上面的例子,我们知道UNION、INTERSECT和EXCEPT操作符可以用来组合多个查询,但是每一个操作符会产生不同的结果。对于这些操作符的更多细节,请查阅SQL Server Books Online。从中你能找到更多的例子来帮你更好地理解每一个操作符的作用。然而,总的来说你会发现使用这三个操作符是非常简单的,并且很容易与你的T-SQL代码相结合。
翻译
TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。
相关推荐
-
SQL Server 2016新变化:内存中OLTP功能大改进
SQL Server 2016的许多功能得到改进,内存中OLTP(in-memory OLTP)也不例外,包括扩展性、性能以及扩展T-SQL用于使用和管理内存优化表的功能方面。
-
优化T-SQL提升SQL Server数据库性能
本文中提供了八种优化T-SQL代码避免SQL Server数据库性能瓶颈的技巧,我们可以据此优化数据库应用。
-
配置SQL Server数据库恢复模式的两种方法
本文我们讨论了配置SQL Server恢复模式的两种方式,用T-SQL或者SQL Server管理工具都可以修改恢复模式的设置。
-
用T-SQL在SQL Server 2012中创建用户自定义角色
SQL Server 2012中引入了两项功能,即创建用户自定义服务器角色和分配服务器级别的权限。本文为初级DBA给出了一个用户自定义服务器角色的示范用例。