1

英数字の文字列があります。私も1つの番号を持っています。文字列は常にこの番号で始まります。この数値を文字列から分離し、文字列の残りの部分を取得するにはどうすればよいですか?

例: 文字列 => 21fgggg21.lkkk および数値 => 21

結果=> fgggg21.lkkk

また

文字列 => 215699898.55fff および数値 => 2

結果=> 15699898.55fff

ヒントをいただければ幸いです。ありがとう。

4

3 に答える 3

3
substr(string, length(number)+1)

また

regexp_replace(string, '^'||number)
于 2013-03-22T05:35:52.890 に答える
2

を使用することもできますREGEXP_REPLACE。文字列の先頭から「21」を削除するには:

SELECT REGEXP_REPLACE('21fgggg21.lkkk', '^21') FROM DUAL;

REGEXP_REPLA
------------
fgggg21.lkkk

文字列の先頭から「2」を削除するには:

SELECT REGEXP_REPLACE('215699898.55fff', '^2') FROM DUAL;

REGEXP_REPLACE
--------------
15699898.55fff

説明として...

  1. キャレット (^) は、「文字列の先頭へのアンカー」を意味します。
  2. ^21「文字列の先頭にある 21 に一致」を意味します。
  3. REGEXP_REPLACE一致した文字列を何に置き換えるかのオプションの 3 番目のパラメーターがあります。一致した文字列を削除したいだけなので、パラメーターを省略できます。これにより、何も置き換えられません。
于 2013-03-22T05:41:40.703 に答える
0

選択するだけの場合は、substrとinstrを組み合わせて使用​​できます。

substr(string, instr(string, 'number') + 1, len(string))

結果は基本的に、番号が配置された場所の後に始​​まる文字列になります。

于 2013-03-22T05:28:17.047 に答える