2014-11-23 35 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;