Мне нужно, чтобы это было сделано в Oracle SQL (10gR2).Но я полагаю, я бы лучше выразился, любой хороший, эффективный алгоритм в порядке.
Учитывая строку (или предложение, содержащее одно или несколько слов на английском языке), как вы найдете последнее слово в предложении?
Вот что я пробовал в SQL.Но я хотел бы увидеть эффективный способ сделать это.
select reverse(substr(reverse(&p_word_in)
, 0
, instr(reverse(&p_word_in), ' ')
)
)
from dual;
Идея состояла в том, чтобы перевернуть строку, найти первый встречающийся пробел, извлечь подстроку и перевернуть строку.Это довольно эффективно?Доступно ли регулярное выражение?Я на Oracle 10g R2.Но я не возражаю видеть какие-либо попытки на другом языке программирования, я не против написать функцию PL / SQL в случае необходимости.
Обновление:
Джеффри Кемп дал замечательный ответ.Это прекрасно работает.
Ответ
SELECT SUBSTR(&sentence, INSTR(&sentence,' ',-1) + 1)
FROM dual