• ベストアンサー

Where句のNot条件をAnd条件にしたい!

現在where句でNot(A is not null and B is not null)という条件をしているSQLがあるのですが、この表現をNot句を使わずに表現するとなるとどのように表現したら良いのでしょうか? SQL以前の問題だと思うのですが、上手く表現できずに件数が合わずに困っています。どなたか助言お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

下の方、結論違ってません? 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

noa104
質問者

お礼

迅速な回答有難うございました。 解法も記していただき大変助かりました。

その他の回答 (4)

  • ham_kamo
  • ベストアンサー率55% (659/1197)
回答No.5

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 でした。

noa104
質問者

お礼

最速で解法についてのアドバイスをいただきすぐに答えを導き出すことができました。有難う御座いました。

noname#60992
noname#60992
回答No.4

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 でした。 ごめんなさい。(ご指摘ありがとうございます。)

noname#60992
noname#60992
回答No.2

私はこのようなことがわからない際は図を描いてみます。 交差する丸を描いて 片方の丸を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)
回答No.1

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 となります。

関連するQ&A

専門家に質問してみよう