Laat me eerst zeggen dat dit de reden is dat je in de eerste plaats geen door komma's gescheiden gegevens in een veld mag hebben. Er is geen gemakkelijke of efficiënte manier om ermee te werken.
Dat gezegd hebbende, je kunt een recursieve zoekopdracht gebruiken om de string te splitsen en de getallen eruit te halen:
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 > ''
Resultaat:
20
^24
^26
^281
^34
^48
^44
^20
^20
^379
^26
^32
^71