初歩的な質問ですみません。
Oracle9iでsqlplusで接続しています。
「member_accountテーブルのdelete_flag(VARCHAR2)カラムの値が'1'ではない」ものを抽出したいと考えてます。
ただ、正しい結果が返ってきません。
何が問題でしょうか?よろしくお願いいたします。
============================================================
SQL> select count(ID) from member_account;
COUNT(ID)
----------
16450
SQL>
SQL> select count(ID) from member_account where delete_flag='1';
COUNT(ID)
----------
107
SQL>
SQL> select count(ID) from member_account where delete_flag<>'1';
COUNT(ID)
----------
0
SQL>
SQL> select count(ID) from member_account where delete_flag!='1';
COUNT(ID)
----------
0
============================================================
よろしくお願いいたします。
No.1ベストアンサー
- 回答日時:
delete_flagフィールドはNULL許可になっていて、'1'でないデータがNULLになっているのではないでしょうか?
だとすると・・・
select count(ID) from member_account where delete_flag<>'1' or delete_flag is null;
でいけるのでは?
No.3
- 回答日時:
nullが原因だと思うので、#1で書かれているように、nullを意識した条件式を使うか、
人間的条件解釈に近いdecode式やcase文を使うと良いと思いますよ。
たとえば、
select count(*) from member_account where decode(delete_flag,'1',1,0) = 0;
や
select count(*) from member_account where case when delete_flag='1' then 1 else 0 end = 0;
は、16343を戻すはずです。
ちなみに、関数式を条件にすると、通常は索引が無効になりますが、
nullデータの検索は所詮索引を使えないので、実質的に問題ないと思います。
No.2
- 回答日時:
Oracleは久しく使っていないので自信はありませんが
delete_flagが空文字列('')かNULLになっているのではないですか?
select count(ID) from member_account where delete_flag is null
でどのような結果が返ってくるか確認してみてください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT文の結果をDEFINEの値と...
-
selectの単純繰り返し
-
SQL WHERE文のノットイコール...
-
SQLのIF文
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
truncate tableを使って複数の...
-
オラクルのUPDATEで複数テーブル
-
PostgreSQLのtimestamp型で時間...
-
UPDATEで既存のレコードに文字...
-
既存データをINSERT文にして出...
-
集計でテストの各教科の最高得...
-
SQLサーバに対するSQL文で抽出...
-
テーブル名が可変の場合のクエ...
-
SELECTした結果に行番号を求めたい
-
データ無し時は空白行にしたい...
-
MySQLで数字の値のもののみを取...
-
timestampのデータはどのように...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
selectの単純繰り返し
-
SELECT文の結果をDEFINEの値と...
-
SQL Server:UNIONで結合した結...
-
SQL WHERE文のノットイコール...
-
ストアドプロシージャが作成さ...
-
RANK関数で順位付けする方法
-
SELECT文発行後の結果をテキス...
-
oracle シーケンスの欠番を確認...
-
詳細設計書でselect文の導き方
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
truncate tableを使って複数の...
-
PostgreSQLのtimestamp型で時間...
-
既存データをINSERT文にして出...
-
UPDATEで既存のレコードに文字...
-
オラクルのUPDATEで複数テーブル
-
SELECTした結果に行番号を求めたい
-
SQLで、Join句で結合したテ...
おすすめ情報