2014-11-23 7 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] 

, но я просто получаю 2-ое слово из передней части предложений и последнего слова предложения. Мой мозг просто не вычисляет то, что мне нужно делать. Последние 2 слова из строки - это имя первого и последнего.

ответ

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; 
Смежные вопросы