Я пытаюсь разобрать только числа из строки. Мой код должен быть довольно близок, но здесь что-то не так, потому что несколько чисел в последней строке усекаются, хотя первые две строки кажутся нормальными.
Вот мой код.
Drop Table SampleData
Create table SampleData
(id int, factor varchar(100))
insert into #source_Policy values (1 ,'AAA 1.058 (Protection Class)')
insert into #source_Policy values (2, 'BBB0.565 (Construction) ')
insert into #source_Policy values ( 3, 'CCCCC 1.04890616 (Building Limit Rel')
Select *
From SampleData
;with processTable as (
select id, factor, num
from SampleData
cross apply (
select (select C + ''
from (select N, substring(factor, N, 1) C from (values(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)) Num(N) where N<=datalength(factor)) t
where PATINDEX('%[0-9.]%',C)> 0
order by N
for xml path(''))
) p0 (num)
)
SELECT id, factor, num
FROM processTable
Это результат, который я получаю.
введите описание изображения здесь
В столбце num вместо 1.04
я хотел бы видеть полную точность, поэтому: 1.04890616