トップページに戻る
次のSQLパズルへ
前のSQLパズルへ
2-1-14 文字列の指定文字以外を消去
SQLパズル
テーブル
Val
----------------------------------
織田信長0-1-2-3徳川家康456豊臣秀吉
文字列の数字以外を消去する。
出力結果
Val 数字以外を消去
---------------------------------- --------------
織田信長0-1-2-3徳川家康456豊臣秀吉 0123456
SQL
--■■■translate関数を使用する方法1■■■
select Val,
translate(Val,'0' || translate(Val,'a0123456789','a'),'0') as 数字以外を消去
from (select '織田信長0-1-2-3徳川家康456豊臣秀吉' as Val from dual);
--■■■translate関数を使用する方法2■■■
select Val,
translate(Val,'0123456789' || Val,'0123456789') as 数字以外を消去
from (select '織田信長0-1-2-3徳川家康456豊臣秀吉' as Val from dual);
--■■■正規表現を使用する方法(10g以降)■■■
select Val,
RegExp_Replace(Val,'[^0-9]') as 数字以外を消去
from (select '織田信長0-1-2-3徳川家康456豊臣秀吉' as Val from dual);
解説
translate関数を使用する方法1では、
変換前の文字列から、
変換前の文字列から作成した数字以外の文字リストを使って、
数字以外の文字を消去してます。
translate関数を使用する方法2は、非推奨と思われます。
SQL command + to select the Number from a string(英語)