Pertama, izinkan saya mengatakan bahwa inilah alasan Anda tidak boleh memiliki data yang dipisahkan koma di bidang sejak awal. Tidak ada cara yang mudah atau efisien untuk menggunakannya.
Karena itu, Anda dapat menggunakan kueri rekursif untuk membagi string dan mendapatkan angka darinya:
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 > ''
Hasil:
20
^24
^26
^281
^34
^48
^44
^20
^20
^379
^26
^32
^71