Gur*_*uru 4 regex string oracle algorithm plsql
我需要在Oracle SQL(10gR2)中完成此操作.但我想,我宁愿说清楚,任何好的,有效的算法都可以.
给定一行(或句子,包含一个或多个单词,英语),您将如何找到句子的最后一个单词?
这是我在SQL中尝试过的.但是,我希望看到一种有效的方法.
select reverse(substr(reverse(&p_word_in)
, 0
, instr(reverse(&p_word_in), ' ')
)
)
from dual;
Run Code Online (Sandbox Code Playgroud)
想法是反转字符串,找到第一个出现的空间,检索子字符串并反转字符串.它效率很高吗?是正则表达式吗?我在Oracle 10g R2上.但我不介意看到任何其他编程语言的尝试,如果需要,我不介意编写PL/SQL函数.
Jeffery Kemp给出了一个很好的答案.这非常有效.
SELECT SUBSTR(&sentence, INSTR(&sentence,' ',-1) + 1)
FROM dual
Run Code Online (Sandbox Code Playgroud)
我认为INSTR/SUBSTR更简单:
WITH q AS (SELECT 'abc def ghi' AS sentence FROM DUAL)
SELECT SUBSTR(sentence, INSTR(sentence,' ',-1) + 1)
FROM q;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15362 次 |
| 最近记录: |