- ベストアンサー
Where句のNot条件をAnd条件にしたい!
現在where句でNot(A is not null and B is not null)という条件をしているSQLがあるのですが、この表現をNot句を使わずに表現するとなるとどのように表現したら良いのでしょうか? SQL以前の問題だと思うのですが、上手く表現できずに件数が合わずに困っています。どなたか助言お願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
下の方、結論違ってません? Not(A is not null and B is not null) = Not( Not(A is null) and Not(B is null) ) = Not(Not(A is null)) or Not(Not(B is null)) = A is null or B is null
その他の回答 (4)
- ham_kamo
- ベストアンサー率55% (659/1197)
No.1です。すみません、私の回答は誤りでした。 No.3の方の回答の通りです。 改めて書き直すと、 X=A is null Y=B is null とすると、 Not(A is not null and B is not null) =Not(Not(X) and Not(Y)) =Not(Not X) or Not(Not Y) =X or Y =A is null or B is null でした。
お礼
最速で解法についてのアドバイスをいただきすぐに答えを導き出すことができました。有難う御座いました。
No2です。 間違っていました。 交差する丸を描いて 片方の丸をA is Nullとして もう片方をB is Nullとすれば、 A is not null and b is not null というのは 二つの丸以外の範囲なので、 Not(A is not null and b is not null) というのは 最低どちらかの丸に属している範囲 A is null or B is null でした。 ごめんなさい。(ご指摘ありがとうございます。)
私はこのようなことがわからない際は図を描いてみます。 交差する丸を描いて 片方の丸をAis not Nullとして もう片方をBis not Nullとすれば、 A is not null and b is not null というのは 二つの丸以外の範囲なので、 Not(A is not null and b is not null) というのは 最低どちらかの丸に属している範囲になりますので、 A is not null or B is not null となります。
- ham_kamo
- ベストアンサー率55% (659/1197)
Not(A and B) = (Not A) or (Not B) という風に論理式は展開できます。 この場合、 Not((Not A) and (Not B)) =Not(Not A) or Not(Not B) =A or B ということで、 A is not null or B is not null となります。
お礼
迅速な回答有難うございました。 解法も記していただき大変助かりました。