85337
行(Total)
のテーブルA
があります。T-SQL複数の否定条件
そして、次のクエリ(Q1)
SELECT *
FROM A
WHERE 1 = 1
AND c1 = 0
AND c2 = 0
AND c3 = 0
AND c4 = 0;
は590
行を返します。
次のクエリ(Q2)
:
SELECT *
FROM A
WHERE 1 = 1
AND c1 != 0
AND c2 != 0
AND c3 != 0
AND c4 != 0;
リターン:44245
行。 (Total)
が(Q1)
+ (Q2)
の同等の合計をしない理由
- (84747を返す必要がありますか)?
- ロジックが同じときに "正しい"値を取得するために、2番目のクエリで "
AND
"の代わりに "OR
"が必要なのはなぜですか?それは些細なものでなければなりませんが、その背後にある論理を想像することはできません。否定のDe Morgan's lawsに基づいて
なぜだろうTotalはQ1 + Q2の量と等しいと思いますか?あなたのデータは明らかにそのような方法ではありません。 –