sql server 2008中以下两个查询的输出应该是什么?
select 2
except
select 0
union all
select 0
except
select 2
select 2
union all
select 0
第一个查询将输出设为0,但我希望联合为2和0,而第二个查询在结果集中显示预期结果0和2。
为什么会这样?
答案 0 :(得分:5)
分阶段
select 2 except select 0
给出
2
然后
union all select 0
给出
2
0
然后
except select 2
删除2给予
0
如果你想要2和0,请使用
(select 2 except select 0)
union all
(select 0 except select 2)
答案 1 :(得分:0)
就像数学一样,顺序很重要,括号也很重要 试试这个:
(SELECT 2
EXCEPT
SELECT 0)
UNION ALL
(SELECT 0
EXCEPT
SELECT 2)