Пожалуйста, попробуйте это:
SELECT p.[index],p.[start],p.[end]
FROM (
SELECT TRY_CONVERT(INT,REPLACE(REPLACE(up.Param,'start',''),'end','')) AS [index]
,CASE WHEN up.Param LIKE 'start%' THEN 'start' ELSE 'end' END AS [Type]
,up.[Value]
FROM [YourTableName] t
UNPIVOT(Value FOR Param IN ([start1],[end1],[start2],[end2],[start3],[end3])) up
) a
PIVOT(MAX(a.[Value]) FOR [Type] IN ([start],[end])) p
;