Oracle SQL 数字のみを抽出/除外する方法 - REGEXP_LIKE関数 ホームページ制作 | 墨田区

Oracle SQL 数字のみを抽出/除外する方法 – REGEXP_LIKE関数

LINEで送る
Pocket

Oracle SQLで文字列属性のカラムから数字のみ抽出/除外する方法をご紹介します。

抽出するには、REGEXP_LIKE 関数を利用します。
この関数は、文字列の一部を正規表現を使用して比較することができ、LIKE 演算子と同じように、パターンマッチングをします。




【PR】マジか?!「アレ」してるLINEスタンプっていったい・・・


REGEXP_LIKE

REGEXP_LIKE( 検索対象文字列 , 検索パターン , [ 検索モード ] )

正規表現を「検索パターン」に指定して、検索対象文字列の中からパターンにマッチすれば TRUE マッチしなければ FALSE を返します。

検索モード
i : 大文字/小文字を区別せずに検索する。
c : 大文字/小文字を区別してに検索する。


使い方

例えば、以下のような表があったとします。
create table exsample
(
exsample varchar2(10) not null
)
/
select * from exsample
/

exsample
1A
001
1
2
A1010
AAAA
BBBB

この中から数字だけを抽出するには、以下のようなSQLを実行します。
select * from exsample
where not(regexp_like(exsample, ‘[^0-9]’))
/
[^0-9] は、数字以外の文字という正規表現です。
regexp_like(exsample, ‘[^0-9]’) とすることで、数字以外の文字を含むレコードを抽出します。
これに、not 条件を付加することで、数字のみのレコードを抽出できます。

結果はこうなります。

exsample
001
1
2

数字のみ除外する方法は、not 条件を外せば抽出できます。
select * from exsample
where regexp_like(exsample, ‘[^0-9]’)
/

結果はこうなります。

exsample
1A
A1010
AAAA
BBBB


この関数と正規表現を利用すれば、色々な条件で抽出が可能です。
実務の中で、様々なシーンで活用できますね。

おつかれさまでした。

LINEで送る
Pocket

この記事がお役に立ちましたら シェア をお願いいたします。

コメントを残す

お名前 (必須)
メールアドレス
(アドレスは公開されません)

コメント(必須)

Trackback URL