如何在Oracle 11G中的“Help me Please”字符串中的'me'后直接获取字符串

时间:2013-02-05 21:45:23

标签: sql oracle oracle11g

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

STRING_NAME '请帮帮我'; “请你帮助我,我会很感激的”,

所以我只想从这两行得到'Please'和'I'字符串,因为这就是两行中直接跟'我'的字符。

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

2 个答案:

答案 0 :(得分: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

祝你好运。

答案 1 :(得分:0)

您可以使用:

select regexp_replace(STRING_NAME, '^.*? me ','') from STRING_HELP