我有一个字符串(带空格),我想从中分隔最后一个单词。例如:
"Steve Jobs" => Jobs
"Stack OverFlow Question" => Questions
PL / SQL或SQL中是否有任何功能,以便我可以将结果Jobs
和Question
分开?
答案 0 :(得分:5)
您可以使用INSTR
和SUBSTR
。 INSTR
告诉你特定角色的位置。为起始位置传递-1会告诉Oracle开始向后查找字符串前面的字符串结尾。
SQL> ed
Wrote file afiedt.buf
1 with x as (
2 select 'Steve Jobs' str from dual union all
3 select 'Stack Overflow Question' from dual
4 )
5 select substr( str, instr( str, ' ', -1 ) + 1 ) last_word
6* from x
SQL> /
LAST_WORD
----------------------------------------------------------------------
Jobs
Question
答案 1 :(得分:0)
以下是在Microsoft SQL中执行此操作的方法。对于Oracle语法的字符串函数更改,概念应该一样。
declare @fldName varchar(30)
set @fldName = 'Steve Jobs'
select reverse(substring(reverse(@fldName),1,charindex(' ',reverse(@fldName))-1))
set @fldName = 'Stack Overflow Question'
select reverse(substring(reverse(@fldName),1,charindex(' ',reverse(@fldName))-1))