我正在使用Sql Server,我的问题如下:
这两个代码是否会产生相同的结果:
A除了B与C相交时除了E
除了D
答案 0 :(得分:0)
如果您了解每个操作的定义,那么我认为您将理解从两个示例中返回的内容。
EXCEPT返回左输入查询中不是的不同行 右输入查询输出。 INTERSECT返回不同的行 由左右输入查询运算符输出。
所以按操作顺序:
1. A except B intersect C except D intersect E
A Except B
将返回A
的{{1}}未输出的行; B
只有行A
Intersect
C
行将AC
与Except
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
只有AEC
行Except
只返回D
AEC
总结D
和1. ACE rows
,看起来两者都会返回相同的结果。
答案 1 :(得分:0)
我找到了问题的答案:它主要涉及相交的优先级除外。所以除了B与C相交的A与C之外的A不相似。