トップページに戻る
次の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引数を省略できます。