SQL Server 2005总结:EXCEPT和INTERSECT运算符(二)

日期: 2009-03-11 作者:aierong 来源:TechTarget中国 英文

 结果如下:

  col1

  ———–

  NULL

  2

  3

  4

  –sql 2000的版本,用not exists实现EXCEPT的功能 


  SELECT col1 
  FROM TableA as a 
  where not exists(SELECT col3 FROM Tablec where a.col1=col3) 
  group by col1 

  –sql 2000,not in是得不到上述结果的

  –空值表示值未知。空值不同于空白或零值。没有两个相等的空值。

  –比较两个空值或将空值与任何其他值相比均返回未知,这是因为每个空值均为未知。

  –使用IN或NOT IN比较后返回的所有空值都将返回UNKNOWN。

  –将空值与IN或NOT IN一起使用会产生意外结果。


   SELECT col1 
  FROM TableA 
  where col1 not in(SELECT col3 FROM Tablec) 
  group by col1 

  结果如下:

  col1

  ———–

  2

  3

  4

  –INTERSECT运算符优先于EXCEPT

  –运算步骤是:先运算TableB和TableC的INTERSECT,再和TableA运算EXCEPT

 


 SELECT col1 FROM TableA 
  EXCEPT 
  SELECT col2 FROM TableB 
  INTERSECT 
  SELECT col3 FROM TableC 

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者

aierong
aierong

相关推荐