相交的重要性除了订单

时间:2017-10-31 13:03:02

标签: sql-server

我正在使用Sql Server,我的问题如下:

这两个代码是否会产生相同的结果:

  1. A除了B与C相交时除了E

  2. 除了D

  3. 之外,交叉点E与C相交,除了B

2 个答案:

答案 0 :(得分:0)

如果您了解每个操作的定义,那么我认为您将理解从两个示例中返回的内容。

  

EXCEPT返回左输入查询中不是的不同行   右输入查询输出。 INTERSECT返回不同的行   由左右输入查询运算符输出。

所以按操作顺序:

1. A except B intersect C except D intersect E 
  • A Except B将返回A的{​​{1}}未输出的行;
  • B只有行A Intersect
  • C行将ACExcept
  • D只有行AC Intersect

导致E

ACE
  • 2. A intersect E intersect C except B except D 返回A Intersect E
  • AE返回AE Intersect C
  • AEC在没有AEC Except B
  • 的情况下返回AEC
  • B只有AECExcept只返回D AEC

总结D1. ACE rows,看起来两者都会返回相同的结果。

答案 1 :(得分:0)

我找到了问题的答案:它主要涉及相交的优先级除外。所以除了B与C相交的A与C之外的A不相似。