在SQL中从String中读取间距

时间:2011-12-08 18:23:36

标签: sql oracle plsql plsqldeveloper

我有一个字符串(带空格),我想从中分隔最后一个单词。例如:

"Steve Jobs" => Jobs
"Stack OverFlow Question" => Questions

PL / SQL或SQL中是否有任何功能,以便我可以将结果JobsQuestion分开?

2 个答案:

答案 0 :(得分:5)

您可以使用INSTRSUBSTRINSTR告诉你特定角色的位置。为起始位置传递-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))