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

एसक्यूएल सर्वर में, यह निर्धारित करने का सबसे अच्छा तरीका क्या है कि दी गई स्ट्रिंग वैध एक्सएमएल है या नहीं?

शायद वैध एक्सएमएल की जांच करना जरूरी नहीं है। आप उपयुक्त xml . की उपस्थिति की जांच कर सकते हैं charindex . के साथ टैग करें एक केस स्टेटमेंट में और substring . का उपयोग करके त्रुटि संदेश निकालें .

यहाँ एक सरलीकृत XML स्ट्रिंग के साथ एक नमूना है, लेकिन मुझे लगता है कि आपको यह विचार मिल गया है।

declare @T table(ID int, Col1 nvarchar(1000))

insert into @T values
(1, 'No xml value 1'),
(2, 'No xml value 2'),
(3, '<root><item>Text value in xml</item></root>')

select
  case when charindex('<item>', Col1) = 0
  then Col1
  else
    substring(Col1, charindex('<item>', Col1)+6, charindex('</item>', Col1)-charindex('<item>', Col1)-6)
  end  
from @T

परिणाम:

No xml value 1
No xml value 2
Text value in xml


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर के साथ चयन में सभी स्तंभों को कैसे संयोजित करें

  2. पावरशेल - मेरे सिस्टम पर सभी SQL इंस्टेंस की सूची बनाएं?

  3. MSSQL2008 - Pyodbc - पिछला SQL एक प्रश्न नहीं था

  4. विभिन्न तालिका के कॉलम के आधार पर गणना किए गए कॉलम के लिए सूत्र

  5. SQL सर्वर इंडेक्स फ़्रेग्मेंटेशन को ठीक करने के लिए टिप्स