需要在SQL中检索倒数第二个单词

时间:2014-11-23 23:21:55

标签: sql sql-server

我正在尝试从列值中检索第二个到最后一个单词。

我用过两个

[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]

但我只是从句子的前面和句子的最后一个单词得到第二个单词。我的大脑只是没有计算我需要做的事情。字符串中的最后两个单词是名字和姓氏。

1 个答案:

答案 0 :(得分: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;