我需要在Oracle SQL(10gR2)中完成此操作。但我想,我寧願說清楚,任何好的,有效的算法都可以。句中的最後單詞:在SQL中(正則表達式可能?)
給出一行(或句子,包含一個或多個單詞,英語),你將如何找到句子的最後一個單詞?
這是我在SQL中試過的。但是,我希望看到這樣做的有效方法。
select reverse(substr(reverse(&p_word_in)
, 0
, instr(reverse(&p_word_in), ' ')
)
)
from dual;
當時的想法是扭轉字符串,找到第一個出現的空間,檢索子和反向的字符串。它效率很高嗎?是否有正則表達式?我在Oracle 10g R2上。但我不介意看到其他編程語言的任何嘗試,我不介意編寫一個PL/SQL函數,如果需要的話。
更新:
Jeffery Kemp給出了一個很好的答案。這工作完美。
回答
SELECT SUBSTR(&sentence, INSTR(&sentence,' ',-1) + 1)
FROM dual
好,很好。一個相關的問題:http://stackoverflow.com/questions/3648133/regular-expression-to-find-last-word-in-sentence – Guru 2010-10-11 18:35:43