• ベストアンサー

半角英数字混在データから数字のデータを抽出したい。

データベースにORACLEを使用してVB6にて開発を行っています。 あるテーブルにIDというchar型のデータがあり、ID>='100'andID<'200' の条件(100番台のデータを取得)にてデータを抽出したいと考えています。 ただ、IDには数値だけでなく、A01やB05などの半角アルファベットを含む データも混在しています。 イメージとしては下記のようなSQLが発行できればと思っているのですが、 select * from テーブル名 if trim(ID) is numeric then where ID >= '100' and ID < '200' end if; if trim(ID) is numeric then部分がSQL文として不正確なため動きません。 ORACLEでの開発は初心者のため、どなたかに教えていただければ幸いです。 お手数おかけしますがよろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

select * from テーブル名 where ID >= '100' and ID < '200' and replace(translate(ID,'123456789','000000000'),'0','') is null; で検査できると思いますよ。

peko323
質問者

お礼

回答、ありがとうございます。 教えていただいたSQLにて無事処理が行えました。 ありがとうございました。

その他の回答 (2)

  • ctrlzr
  • ベストアンサー率29% (18/62)
回答No.3

↓is not nullかと

  • ctrlzr
  • ベストアンサー率29% (18/62)
回答No.1

if trim(ID) is numeric thenをつけなくても、where ID >= '100' and ID < '200'の条件であれば、A01やB05はヒットしません。 10Aだとヒットしてしまいますが。

peko323
質問者

お礼

回答いただき、ありがとうございます。 そうですね。 数字以外のIDはすべて100番台以外として処理したかったのです。

関連するQ&A