我在下面选择:
select sum(col1) as sum1
from table1
where col2 = 'A' and col3 in ('AA','BB')
现在我做的时候:
select sum(col1) as sum2
from table1
where col2 <> 'A' and col3 not in ('AA','BB')
并尝试添加: sum1 + sum2 ,我应该得到(col1)的总和。但是缺少一些价值。你知道为什么吗?
答案 0 :(得分:2)
这两个查询并不是完全互补的,您缺少NULL
个值来启动。您还缺少WHERE col2 = 'A' AND col3 NOT IN ('AA', 'BB')
和WHERE col2 <> 'A' and col3 IN ('AA', 'BB')
。
就像我说你也遗漏了NULL
,你可以这样检查:WHERE col2 IS NULL OR col3 IS NULL
编辑请求的是第一个给定的备用查询:
select sum(col1) as sum2
from table1
where col2 <> 'A'
OR col3 not in ('AA','BB')
OR col2 IS NULL
OR col3 IS NULL
答案 1 :(得分:0)
因为可能存在col2 =&#39; A&#39;和col3不在(&#39; AA&#39;,&#39; BB&#39;) 要么 col2&lt;&gt; &#39; A&#39;和col3 in(&#39; AA&#39;,&#39; BB&#39;)