FC2ブログ

複数の条件を同時に満たす場合は除外する

複数の条件を同時に満たす場合は除外するSQL。

TEST_TBL の column1 とcolumn2 が両方とも「0」のレコードは除外したい。

select * from [TEST_TBL]
where ([column1] <> 0 or [column2] <> 0)


column1 が「0」以外、もしくはcolumn2 が「0」以外。つまりはどちらかに「0」以外が入っているものが対象になる。
言い換えれば、どちらも「0」が入っているレコードは対象外になる……はず。

理屈ではそうなのだとは思うのだけれども、何となく自信が持てずにいたら、優秀なSEの方が忙しい中わざわざ調べて教えてくれた。

select * from [TEST_TBL]
where not ([column1] = 0 and [column2] = 0)


column1 が「0」かつ column2 が「0」、つまり両方が「0」のもの【ではない】という条件句。

結果、先のSQLと同じレコード数が取得できたのだけれども、後のSQLの方が、ちょっとカッコいいし、間違いもなさそうな気がする。
ホントはどっちでも同じなのだろうけど…。

コメントの投稿











管理者にだけ表示を許可する

トラックバック

この記事のトラックバックURL
https://hoshinahouse.blog.fc2.com/tb.php/1349-c3ba0eef