Последнее слово в предложении: в SQL (возможны ли регулярные выражения?)
Мне нужно, чтобы это было сделано в 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