सबसे पहले, मुझे केवल यह कहना चाहिए कि यही कारण है कि आपके पास पहले स्थान पर अल्पविराम से अलग डेटा नहीं होना चाहिए। इसके साथ काम करने का कोई आसान या कारगर तरीका नहीं है।
उस ने कहा, आप स्ट्रिंग को विभाजित करने और उससे संख्याएं प्राप्त करने के लिए एक पुनरावर्ती क्वेरी का उपयोग कर सकते हैं:
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 > ''
परिणाम:
20
^24
^26
^281
^34
^48
^44
^20
^20
^379
^26
^32
^71