SQL文について、聞きたいことがあります。項目のJOUTAIはVARCHAR方のデータです。
SELECT JYOTAI FROM TABLE WHERE JOUTAI <> '新'というものをオラクルで実行しても、レコードが選択されません。
SELECT JYOTAI FROM TABLE WHERE JOUTAI = '新'ですと、しっかりとJYOTAIに新が入っているデータを抽出します。
JOUTAIに'新'の文字が入っていないデータを抽出する書き方を教えていただけないでしょうか(NOT EXISTSも試しましたが、結果は同じでした)?
試していませんが、
!=
の場合、どうなりますか?
今までのものと同じ結果が出てしまいました。
ちなみに
SELECT COUNT(*) FROM TABLE WHERE JOUTAI = '新'
と
SELECT COUNT(*) FROM TABLE
を実行したら、それぞれ、どうなりますか?
テーブルの4件あるデータのうち'新'が2つ入っているので、whereで指定すれば2、 しなければ4となります。
SELECT JYOTAI FROM TABLE WHERE NOT (JOUTAI LIKE '新');
はどうですか?
ところで、
DB及びバージョンは何ですか?
JYOTAI と JOUTAI は別フィールドですか?
DBエンジン(バージョン)によっては
<>'新' も !='新' も not (JOUTAI like '新') 全てOKなものもありますよ
すみません
最初に”オラクルで実行しても”と書いてありますね。
よく読まないで問いただしてしまいました。ゴメンナサイ。
ここDelphiのQ&A掲示板だよね…まあいいや
'新'でないところがNULLだということはありませんか?
(NULLを含む比較演算の結果は常にFALSEとなるはず)
where JOUTAI is null としたらどうなります?
ご指摘いただいた通りnullで処理したら、希望通りの結果が得られました。
どうもです^^
ツイート | ![]() |