thank you for help and support it solved
and this is my solution :
create FUNCTION myfuncolumnTextNumbers (@str varchar(500))
RETURNS TABLE
AS RETURN
(
WITH Num1 (n) AS (
SELECT 1 as n
UNION ALL SELECT n+1 as n
FROM Num1 Where n<101),
Num2 (n) AS (SELECT 1 FROM Num1 AS X, Num1 AS Y),
Nums (n) AS (SELECT ROW_NUMBER() OVER(ORDER BY n) FROM Num2)
,processTable as (
select col1 as textCol,col2 as NumCol
from (select @str as columnTextNumbers) #temp Cross Apply (
select (select C + ''
from (select N, substring(columnTextNumbers, N, 1) C from Nums
where N<=datalength(columnTextNumbers)) t
where PATINDEX('%[^0-9.]%',C)> 0
order by N
FOR XML PATH(''), TYPE).value('.', 'varchar(max)')
) p0 (col1)
Cross Apply (
select (select C + ''
from (select N, substring(columnTextNumbers, N, 1) C from Nums
where N<=datalength(columnTextNumbers)) t
where PATINDEX('%[0-9.]%',C)> 0
order by N
FOR XML PATH(''), TYPE).value('.', 'varchar(max)')
) p1 (col2)
)
SELECT textCol, NumCol FROM processTable
)
create table #temp
(
columnTextNumbers nvarchar(50)
)
insert into #temp (columnTextNumbers)
values
('3.5A'),
('5.50kg'),
('35.70kg'),
('9m')
SELECT columnTextNumbers, textCol, NumCol
FROM #temp
cross apply dbo.myfuncolumnTextNumbers(columnTextNumbers) d
drop table #temp