4

Oracle の文字列から文字 -、+、(、)、およびスペースを削除する必要があります。文字列内の他の文字はすべて数字になります。これを行うことができる関数は REGEXP_REPLACE です。正しい正規表現を書く手助けが必要です。

例: 文字列 '23+(67 -90' は '236790' を返す必要があります 文字列 '123456' は '123456' を返す必要があります

4

4 に答える 4

7

何かのようなもの

SQL> ed
Wrote file afiedt.buf

  1  with data as (
  2    select 'abc123def456' str from dual union all
  3    select  '23+(67 -90' from dual union all
  4    select '123456' from dual
  5  )
  6  select str,
  7         regexp_replace( str, '[^[:digit:]]', null ) just_numbers
  8*   from data
SQL> /

STR          JUST_NUMBERS
------------ --------------------
abc123def456 123456
23+(67 -90   236790
123456       123456

するべきです。これにより、数字以外の文字が文字列から削除されます。

于 2012-10-23T00:33:14.570 に答える
0

\Dまたはを検索し[\-\+, ]、空の文字列に置き換えます''

于 2012-10-23T00:37:51.247 に答える