Primeiro, deixe-me dizer que esta é a razão pela qual você não deve ter dados separados por vírgula em um campo em primeiro lugar. Não existe uma maneira fácil ou eficiente de trabalhar com isso.
Dito isso, você pode usar uma consulta recursiva para dividir a string e obter os números dela:
with split as
(
select
item = cast('' as varchar(max)),
source = cast('20,0, 5,,^24,0, 0,,^26,0, 0,,^281,0, 0,,^34,0, 2,,^48,0, 2,,^44,0, 2,,^20,0, 10,,^20,5, 5,,^379,1, 1,,^26,1, 2,,^32,0, 1,,^71,0, 2,,^' as varchar(max))
union all
select
item = substring(source, 1, charindex(',,', source)),
source = substring(source, charindex(',,', source) + 2, 10000)
from split
where source > ''
)
select substring(item, 1, charindex(',', item) -1)
from split
where item > ''
Resultado:
20
^24
^26
^281
^34
^48
^44
^20
^20
^379
^26
^32
^71