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

संग्रहीत कार्यविधि का उपयोग करके sql सर्वर 2008 में एक स्ट्रिंग को कैसे विभाजित करें और तालिका में डेटा डालें

आम तौर पर, मैं एक सीएलआर फ़ंक्शन लिखने का सुझाव दूंगा जो रेगेक्स या एसक्यूएल टेबल-वैल्यू फ़ंक्शन द्वारा स्ट्रिंग्स को विभाजित करता है, लेकिन आपके मामले में आप कुछ सरल कोशिश कर सकते हैं जैसे अपनी स्ट्रिंग को एक्सएमएल में कनवर्ट करना और इसे पार्स करना:

declare @str nvarchar(max) = 'date=10/10/2000|age=13^date=01/01/2001|age=12^date=02/02/2005|age=8'
declare @data xml

select @str = replace(@str, '=', '="')
select @str = replace(@str, '|', '" ')
select @str = replace(@str, '^', '"/><row ')
select @str = '<row ' + @str + '"/>'

select @data = cast(@str as xml)

select
    t.c.value('@date', 'nvarchar(max)') as [date],
    t.c.value('@age', 'nvarchar(max)') as [age]
from @data.nodes('row') as t(c)

sql fiddle डेमो



  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. मैं SQL सर्वर 2005 में एकाधिक पंक्तियों को अल्पविराम-सीमांकित सूची में कैसे जोड़ सकता हूं?

  3. तालिका में 5 गीगा फ़ाइल आयात करने में त्रुटि

  4. एक चुनिंदा कॉलम के मूल्य को स्टोर करना और अगले के लिए इसका इस्तेमाल करना संभव है?

  5. SQL सर्वर 2008 में PIVOT / UNPIVOT