• ベストアンサー

SQLServer7.0で、SELECT文で列を抽出する ※Nullと0の条件について

SQLServer7.0で、SELECT文で列を抽出する際なんですが、 列A 列B --------- 1  Null 2  Null 3  1 ↑のテーブルから、列Aの1、2だけを抽出するSELECT文を SELECT * FROM XXX WHERE 列B <> 1 と作成したのですが、うまく動作しません(汗) データが一件も取れないのです。(列B:tinyint型、Null許容) テーブル内のデータをNull→0にして、同SELECT文で抽出すればうまくいったのですが。。 Nullデータを、<>XX という条件で取得することはできないんですかねえ・・・。 それとも、テーブルの設定か、条件の記述方法がまずいんでしょうか。 どなたか、ご存知あればアドバイスをお願いします。

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

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

再びNo.1です。 >Null値を抽出したいわけではなく、1以外のデータを抽出したいのです。 >そのデータにNullが含まれてるので・・・、 Prynneさんのおっしゃる通り、 >NULLを含める1以外のもの、という条件にするのであれば、 >WHERE (B列 <> 1) OR (B列 IS NULL) とのことですが、(NO.1のPS(追伸)にもありますが、) WHERE (B列 <> 1) AND (B列 IS NOTNULL) でもできますので、蛇足ながら一応補足させていただきす。m(__)m

ekyu
質問者

お礼

ありがとうございます~。。 SELECT文は、ひとまず WHERE (B列 <> 1) AND (B列 IS NOTNULL) と記述して対処するようにしましたっ。 助かりました♪

その他の回答 (2)

noname#3345
noname#3345
回答No.2

ShadowMoonさんのおっしゃる通り、NULL値を抽出するなら「IS NULL」を使用します。 NULLを含める1以外のもの、という条件にするのであれば、 WHERE (B列 <> 1) OR (B列 IS NULL) と指定しなくてはいけません。

ekyu
質問者

お礼

ShadowMoonさん、Prynneさん回答ありがとうなのです。 ・・・・そうなんです。 Null値を抽出したいわけではなく、1以外のデータを抽出したいのです。 そのデータにNullが含まれてるので・・・、 要は 列A 列B --------- 1  Null 2  0 3  1 という列であったらば、列1,2が取れて欲しいので、 >NULLを含める1以外のもの、という条件にするのであれば、 という条件になりますね。。 WHERE (B列 <> 1) OR (B列 IS NULL) はうう・・・、OR条件つけないと動かないですね。 何故だろう、1以外にNullは含まれないのでしょうか。 ちょっと素朴な疑問。。

回答No.1

Null値を検索したいのであれば"IS NULL"を使用するのでは・・・?。 SELECT * FROM XXX WHERE 列B IS NULL としてみてください。 PS:NULL値でないものを検索するには”IS NOTNULL”です。

ekyu
質問者

お礼

やっぱりNullデータは IS NULL で指定なんですね。 ちょっとやってみます。

関連するQ&A