You need recursive CTE:
;WITH YourTable AS ( --simulation of your table
SELECT * FROM (VALUES (1,0.18),(2,10),(3,32.11)) as t(Id,[Value])
), cte AS ( --Don't know what version of SQL Server you are using
SELECT a.ID, --so I use OUTER APPLY to get next string value
cast(a.[Value] as float) [Value],
ISNULL(CAST((b.[Value]-a.[Value])/10 as float),0.00) as Seq
FROM YourTable a
OUTER APPLY (
SELECT TOP 1 *
FROM YourTable
WHERE a.ID < ID
ORDER BY ID ASC
) b
), final AS (
SELECT c.ID,
c.[Value],
c.Seq
FROM cte c
UNION ALL
SELECT CASE WHEN f.[Value]+f.Seq = c.[value] THEN c.id ELSE f.id END,
f.[Value]+f.Seq,
CASE WHEN ROUND(f.[Value]+f.Seq,2) = ROUND(c.[value],2) THEN c.Seq ELSE f.Seq END
FROM final f
INNER JOIN cte c
ON c.ID = f.ID+1 and
ROUND(f.[Value]+f.Seq,2) < ROUND(c.[value],2)
WHERE f.seq > 0
)
SELECT ROW_NUMBER() OVER (ORDER BY [Value]) as ID,
[Value],
Seq
FROM final
ORDER BY id,[Value]
OPTION (MAXRECURSION 200)
Output:
ID Value Seq
1 0,18 0,982
2 1,162 0,982
3 2,144 0,982
4 3,126 0,982
5 4,108 0,982
6 5,09 0,982
7 6,072 0,982
8 7,054 0,982
9 8,036 0,982
10 9,018 0,982
11 10 2,211
12 12,211 2,211
13 14,422 2,211
14 16,633 2,211
15 18,844 2,211
16 21,055 2,211
17 23,266 2,211
18 25,477 2,211
19 27,688 2,211
20 29,899 2,211
21 32,11 0