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

解決済みの質問

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

データベースに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での開発は初心者のため、どなたかに教えていただければ幸いです。
お手数おかけしますがよろしくお願いします。

投稿日時 - 2006-12-18 11:57:27

QNo.2609737

すぐに回答ほしいです

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

select * from テーブル名
where ID >= '100' and ID < '200' and replace(translate(ID,'123456789','000000000'),'0','') is null;

で検査できると思いますよ。

投稿日時 - 2006-12-18 12:47:43

お礼

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

投稿日時 - 2006-12-18 14:42:51

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

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

回答(3)

ANo.3

↓is not nullかと

投稿日時 - 2006-12-18 12:51:32

ANo.1

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

投稿日時 - 2006-12-18 12:36:40

お礼

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

投稿日時 - 2006-12-18 14:42:13

あなたにオススメの質問