Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एकाधिक पंक्तियों में विभाजित चर लंबाई सीमांकित स्ट्रिंग (एसक्यूएल)

सबसे पहले, मुझे केवल यह कहना चाहिए कि यही कारण है कि आपके पास पहले स्थान पर अल्पविराम से अलग डेटा नहीं होना चाहिए। इसके साथ काम करने का कोई आसान या कारगर तरीका नहीं है।

उस ने कहा, आप स्ट्रिंग को विभाजित करने और उससे संख्याएं प्राप्त करने के लिए एक पुनरावर्ती क्वेरी का उपयोग कर सकते हैं:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अधिकतम तिथि के आधार पर विशिष्ट रिकॉर्ड कैसे प्राप्त करें?

  2. पेश है नई सुविधा:ऑलवेज ऑन अवेलेबिलिटी ग्रुप

  3. SQL सर्वर:XML आउटपुट के साथ दो-स्तरीय GROUP BY

  4. SQL सर्वर - SQL सर्वर / TSQL ट्यूटोरियल पार्ट 132 में ग्रुप बाय और क्लॉज का उपयोग करके डुप्लिकेट रिकॉर्ड कैसे खोजें?

  5. किसी भिन्न स्तंभ के मान के आधार पर डिफ़ॉल्ट स्तंभ मान