【Oracle g11】Where句で正規表現を使って英数字を指定する

今回はOracleDBの中で正規表現を使う機会がありました! なので、ちょっとどんな感じに使ったのかを残しておきます。

今回は結論をバシッと!

英数字を抽出

対象カラムに英数字が入力されていたら抽出するSQLは以下!

SELECT 
	*
FROM 
	テーブル名
WHERE 
	(REGEXP_LIKE(カラム名, '^[[:alnum:]]'))Code language: JavaScript (javascript)

もし、英数字以外のカラムを抽出したい場合は以下でいけます!

SELECT 
	*
FROM 
	テーブル名
WHERE 
	NOT(REGEXP_LIKE(カラム名, '^[[:alnum:]]'))Code language: JavaScript (javascript)

↑ただ、この場合空白とかも抽出されてしまうので注意しておいてください!

数値が入力されていた時だけ抽出

先ほどは英数字だけだった場合だったのですが、数値だけだった場合はどのように抽出するのか!

SELECT 
	*
FROM 
	テーブル名
WHERE 
	(REGEXP_LIKE(カラム名, '^[[:digit:]]'))Code language: JavaScript (javascript)

digitを指定することで、カラム内が数値だけだった場合抽出するようにします

まとめ

今回は以下のようなサイトを参考にさせてもらいました!

あとは正規表現のチートシートも共有してくれているサイトもあるのでこれも参考に~

エンジニアとして基本的(基本的とはなんぞや)な正規表現は覚えておきたいな…

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA