こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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 という条件で取得することはできないんですかねえ・・・。
それとも、テーブルの設定か、条件の記述方法がまずいんでしょうか。
どなたか、ご存知あればアドバイスをお願いします。

投稿日時 - 2002-08-01 10:33:28

QNo.326876

困ってます

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

再び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

投稿日時 - 2002-08-01 11:16:27

お礼

ありがとうございます~。。

SELECT文は、ひとまず

WHERE (B列 <> 1) AND (B列 IS NOTNULL)

と記述して対処するようにしましたっ。
助かりました♪

投稿日時 - 2002-08-01 12:00:28

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(3)

ANo.2

ShadowMoonさんのおっしゃる通り、NULL値を抽出するなら「IS NULL」を使用します。
NULLを含める1以外のもの、という条件にするのであれば、

WHERE (B列 <> 1) OR (B列 IS NULL)

と指定しなくてはいけません。

投稿日時 - 2002-08-01 10:53:00

お礼

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は含まれないのでしょうか。
ちょっと素朴な疑問。。

投稿日時 - 2002-08-01 11:03:25

ANo.1

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

投稿日時 - 2002-08-01 10:44:23

お礼

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

投稿日時 - 2002-08-01 10:57:59

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-