みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

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

締切り済みの質問

Oracleのシングルクォーテーション

いつもお世話になっております。

Oracleの「'(シングルクォーテーション)」の使い方について教えてください。

テーブルAのフィールド001には2桁の数値が文字列型として格納されています。
(1)SELECT COUNT(*) FROM テーブルA WHERE フィールド001 = '09'
でデータの抽出をしているのですが、データがあるにも係らず、「0」となってしまいます。

(2)SELECT COUNT(*) FROM テーブルA WHERE フィールド001 = 09
では、「09」だけでなく「9」までカウントしてしまいます。

データの中には「09」「9」が混在していて、これらを別々にカウントしたいのですが、(1)では結果を得ることが出来ません。シングルクォーテーションの使い方に間違いがあるのでしょうか?

別々にカウントする方法があればご教授いただけないでしょうか?

よろしくお願いします。

投稿日時 - 2012-06-18 16:48:16

QNo.7540842

困ってます

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

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

回答(3)

ANo.3

「フィールド001」は「varchar2(2)」ですか、正確な列定義を提示してください。
そうでないと回答も曖昧になってしまいます。

後、
SELECT ':' || フィールド001 || ':', COUNT(*)
FROM テーブルA
WHERE REPACE( TRIM( フィールド001 ), '0', '' ) = '9'
GROUP BY ':' || フィールド001 || ':'

を実行してみてください。「90」なども対象になってしまいますが、とりあえず現状がどうなっているのかわかると思います。

投稿日時 - 2012-06-18 23:02:28

ANo.2

MVC

フィールド001の型が、char型ならそれで間違っていないはずです。
もし、varchar2 ならデータにスペースが混じってる可能性があります。
trim(フィールド001) = '09'
でいけるはずです。

投稿日時 - 2012-06-18 18:30:48

ANo.1

(1)で正解のはずですが。

投稿日時 - 2012-06-18 17:08:29

あなたにオススメの質問