使用EXCEPT操作符组合结果集

日期: 2010-01-04 作者:Robert Sheldon翻译:曾少宁 来源:TechTarget中国 英文

EXCEPT操作符的工作方式与INTERSECT操作符相反。产生的最终结果集只包含在第1个查询中返回而不在第2个查询中返回的值。例如,下面的语句返回在表Employees1而不在表Employees2的值:   SELECT BusinessEntityID,   FirstName,   LastName   FROM Employees1   EXCEPT   SELECT BusinessEntityID,   FirstName,   LastName   FROM Employees2;   我们可以从下面的结果集看到,只有对应于Busines……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

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  
------------------------------------------
1KenSánchez
2TerriDuffy

  如果想要返回表Employees2的记录,而不是表Employees1的记录,我们必须将表的顺序调转,如下所示:

  SELECT BusinessEntityID,
  FirstName,
  LastName
  FROM Employees2
  EXCEPT
  SELECT BusinessEntityID,
  FirstName,
  LastName
  FROM Employees1;

  现在结果只包含对应于BusinessEntityID值为5和6的记录:

BusinessEntityID  FirstName  LastName  
------------------------------------------
5GailErickson
6JossefGoldberg

  从上面的例子,我们知道UNION、INTERSECT和EXCEPT操作符可以用来组合多个查询,但是每一个操作符会产生不同的结果。对于这些操作符的更多细节,请查阅SQL Server Books Online。从中你能找到更多的例子来帮你更好地理解每一个操作符的作用。然而,总的来说你会发现使用这三个操作符是非常简单的,并且很容易与你的T-SQL代码相结合。

翻译

曾少宁
曾少宁

TechTarget中国特约技术编辑,某高校计算机科学专业教师和网络实验室负责人,曾任职某网络国际厂商,关注数据中心、开发运维、数据库及软件开发技术。有多本关于思科数据中心和虚拟化技术的译著,如《思科绿色数据中心建设与管理》和《基于IP的能源管理》等。

相关推荐