我有一个字符串(带空格),我想从中分隔最后一个单词。例如:
"Steve Jobs" => Jobs
"Stack OverFlow Question" => Questions
PL/SQL 或 SQL 中是否有任何功能,以便我能够得到结果Jobs
并将其Question
分离出来?
我有一个字符串(带空格),我想从中分隔最后一个单词。例如:
"Steve Jobs" => Jobs
"Stack OverFlow Question" => Questions
PL/SQL 或 SQL 中是否有任何功能,以便我能够得到结果Jobs
并将其Question
分离出来?
您可以使用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
这是一种在 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))