0

Oracle 11G を使用していますが、文字列キーワードの直後に文字列を取得する際に助けが必要です。この場合、次の行を持つ STRING_NAME という列を持つ STRING_HELP というテーブルがあります。

STRING_NAME '助けてください'; 「私を助けてくれませんか。よろしくお願いします」;

したがって、これらの 2 つの行から文字列「Please」と「I」のみを取得しようとしています。これは、両方の行で「me」の直後に続くものだからです。

REGEXP_SUBSTRING、REGEXP_REPLACE を使用して実験しようとしましたが、me という単語の直後に文字列を取得できませんでした。2つの異なる回答をお願いします。すべてがスペースで区切られていることがわかっている場合、自分の直後に文字列を取得するにはどうすればよいですか? 助けていただければ幸いです、ありがとう。

4

2 に答える 2

0

あなたが使用することができます:

select regexp_replace(STRING_NAME, '^.*? me ','') from STRING_HELP
于 2013-02-05T22:11:46.103 に答える
0

SUBSTRINSTR、およびを使用できますCOALESCEが、より良い解決策があるかもしれません。

SELECT  COALESCE( SUBSTR(str, 0, INSTR(str, ' ')) , str) newStr
FROM (
  SELECT LTrim(Substr(STRING_NAME,INSTR(STRING_NAME,'me')+LENGTH('me'))) str
  FROM STRING_HELP 
  ) t;

http://sqlfiddle.com/#!4/0cf12/3

幸運を。

于 2013-02-05T22:00:04.587 に答える