我想找到两个select
报表时,该行属于所有行(所有列匹配),以要么 SELECT语句,但不能同时。甲骨文MINUS两种方式(获取选择之间的差值)
我知道如何在一个方向
select foo from foobar where bar = 1
minus
select foo from foobar where bar = 2;
这将返回所有行其中,foo是存在于第一个SELECT语句,但不是最后一个,但不是其他方式做到这一点英寸
我知道我可以做
(select foo from foobar where bar = 1
minus
select foo from foobar where bar = 2)
union
(select foo from foobar where bar = 2
minus
select foo from foobar where bar = 1);
它返回期望的结果。但这是很多重复。是否有一些像minus
这样的运营商可以同时运行?
此外,我想添加标识符的结果,这表明它属于哪个选择。但仅此一项就会使所有行都不同。
纠正我,如果我错了,但不会记录哪个'bar = 1'隐式不同于'bar = 2'(或任何其他值)的记录?也许你应该更新一个更好的例子。 –
我没有返回所有列,而只是一个特定的列,这可能是通用的或不同的,不管酒吧 –
如果您向我们显示一些实际样本数据,可能对其他人有帮助。一张图片胜过千言万语绝对适用于Stack Overflow的SQL查询问题。 –