0

我正在使用 Oracle 11G,需要帮助才能在字符串关键字之后直接获取字符串。在这种情况下,我有一个名为 STRING_HELP 的表,其中包含一个名为 STRING_NAME 的列,其中包含以下行:

STRING_NAME“请帮帮我”;'请你帮助我,我将不胜感激';

因此,我只想从这两行中获取字符串“请”和“我”,因为那是在两行中直接跟在“我”之后的内容。

我一直在尝试使用 REGEXP_SUBSTRING、REGEXP_REPLACE 进行实验,但我无法直接在单词 me 之后获取字符串。我想要两个不同的答案。如果我知道所有内容都是空格分隔的,如何直接在我之后获取字符串?我将不胜感激任何帮助,谢谢。

4

2 回答 2

0

您可以使用SUBSTRINSTRCOALESCE,但可能有更好的解决方案:

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 回答
0

你可以使用:

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