2014-11-23 166 views
0

我试图从列值检索倒数第二个单词。需要检索SQL中的倒数第二个单词

我都用了

[desc], 
REVERSE(LEFT(REVERSE([Desc]), CHARINDEX(' ', REVERSE([Desc]))-1)) [Last Name], 

(
ltrim(substring([desc],charindex(' ',[desc]), CHARINDEX(' ',ltrim(SUBSTRING([desc],charindex(' ',[desc]),LEN([desc])-charindex(' ',REVERSE(left(REVERSE([Desc]), CHARINDEX(' ', REVERSE([Desc]))-1)))))))) 
) [First Name] 

但我刚刚从句子的前面和句子的最后一个单词的第二个字。我的大脑并没有计算出我需要做的事情。字符串的最后两个单词是First和Last的名字。

回答

2

我想我会只看一个SplitString()功能在网络上和使用:

select t.* 
from (select t.*, row_number() over (partition by t.id order by ind desc) as seqnum 
     from table t outer apply 
      splitstring(t.[desc])(str, ind) 
    ) t 
where seqnum = 2; 
相关问题