dポイントプレゼントキャンペーン実施中!

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

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)では結果を得ることが出来ません。シングルクォーテーションの使い方に間違いがあるのでしょうか?

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

よろしくお願いします。

A 回答 (3件)

「フィールド001」は「varchar2(2)」ですか、正確な列定義を提示してください。


そうでないと回答も曖昧になってしまいます。

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

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

フィールド001の型が、char型ならそれで間違っていないはずです。


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

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

    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す