Если вы имеете дело с 128 символами на разделенную часть строки, попробуйте parsename
, как показано ниже. В противном случае у GMB есть довольно хорошее решение solid.
select *, parsename(left(result,charindex('.',result,charindex('.',result)+1)-1),1) as mid
from your_table;
Другой метод, который вы можете легко изменить, чтобы извлечь 3-ю, 4-ю ... (надеюсь, не слишком удаленную) часть строки, используя cross apply
.
select result, mid
from your_table t1
cross apply (select charindex('.',result) as i1) t2
cross apply (select charindex('.',result,(i1 + 1)) as i2) t3
cross apply (select substring(result,(i1+1),(i2-i1-1)) as mid) t4;
DEMO