
初歩的な質問ですみません。
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で質問しましょう!
似たような質問が見つかりました
- Access(アクセス) アクセス 有効なフィールド名、または式として認識できませんのエラー 3 2022/08/19 11:53
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- MySQL SQLです。こんな感じですか?あってますか? うまくいきません教えてくださいお願いします 1 2023/07/08 15:27
- MySQL うまくいきません教えてくださいお願いしますSQLです。クエリ構文です。 1 2023/07/07 12:39
- MySQL 書籍の内容はまともでしょうか? 1 2023/01/22 03:07
- Access(アクセス) アクセス where句を使用して複数条件抽出をするには 2 2022/08/29 13:24
- Visual Basic(VBA) access count数を変数に格納 2 2022/03/30 19:21
- PHP コメント機能に返信欄を矢印で追加したい 1 2022/05/09 21:17
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
selectの単純繰り返し
-
SELECT文の結果をDEFINEの値と...
-
SELECT INTOで一度に複数の変数...
-
【SQL】他テーブルに含まれる値...
-
sqlに記述できない文字
-
改行を含んだデータのインポート
-
フラグをたてるってどういうこ...
-
定義域関数の抽出と連結表示に...
-
UPDATEで既存のレコードに文字...
-
副問合せを使わずにUNIONと同様...
-
truncate tableを使って複数の...
-
既にテーブルが存在する場合の...
-
Where句のNot条件をAnd条件にし...
-
グループごとの一番小さい値を...
-
1つのSQLで2段階の抽出を行い...
-
オラクルのUPDATEで複数テーブル
-
右向き、左向きの速度が最大と...
-
複数の条件に該当する結果を、...
-
フラグの文字型は?
-
Accessで最新のレコード...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQLをExcelで書いている人を良...
-
selectの単純繰り返し
-
SELECT文の結果をDEFINEの値と...
-
SQL Server:UNIONで結合した結...
-
ExcelVBAで複数のコマンドボタ...
-
oracle シーケンスの欠番を確認...
-
ストアドプロシージャが作成さ...
-
詳細設計書でselect文の導き方
-
SELECT文発行後の結果をテキス...
-
OUTER JOINについて
-
SQLのIF文
-
SQL WHERE文のノットイコール...
-
【SQL】他テーブルに含まれる値...
-
フラグをたてるってどういうこ...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
UPDATEで既存のレコードに文字...
-
truncate tableを使って複数の...
-
PostgreSQLのtimestamp型で時間...
-
オラクルのUPDATEで複数テーブル
おすすめ情報