トップページに戻る    次のSQLパズルへ    前のSQLパズルへ

2-1-13 文字列の指定文字を消去

SQLパズル

deleteStr
Val
-------------
aBC0123456789
012345ABC
111abc

文字列から、数字と英大文字を消去する。

出力結果
Val            数字と英大文字を消去
-------------  --------------------
aBC0123456789  a
012345ABC      abc
111abc         null


データ作成スクリプト

create table deleteStr(Val) as
select 'aBC0123456789' from dual union
select '012345ABC'     from dual union
select '111abc'        from dual;


SQL

--■■■translate関数を使う方法■■■
select Val,
translate(Val,'a01234564789ABCDEFGHIJKLMNOPQRSTUVWXYZ','a') as "数字と英大文字を消去"
from deleteStr
order by Val desc;

--■■■正規表現を使う方法(10g以降)■■■
select Val,
RegExp_Replace(Val,'[0-9A-Z]') as "数字と英大文字を消去"
from deleteStr
order by Val desc;


解説

RegExp_Replace関数は、Replace関数と同様に、第3引数を省略できます。