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

SQL का उपयोग करके व्यक्तिगत xml नोड का चयन करना

आपको query() विधि का उपयोग करना चाहिए यदि आप अपने XML का एक भाग प्राप्त करना चाहते हैं।

declare @XML xml

set @XML = 
'
<root>
  <row1>
    <value>1</value>
  </row1>
  <row2>
    <value>2</value>
  </row2>
</root>
'

select @XML.query('/root/row2')

परिणाम:

<row2>
  <value>2</value>
</row2>

यदि आप किसी विशिष्ट नोड से मान चाहते हैं तो आपको value() विधि<का उपयोग करना चाहिए। /ए> ।

select @XML.value('(/root/row2/value)[1]', 'int')

परिणाम:

2

अपडेट करें:

यदि आप अपने XML को कई पंक्तियों में विभाजित करना चाहते हैं तो आप nodes() विधि<का उपयोग करें। /ए> ।

मान प्राप्त करने के लिए:

declare @XML xml

set @XML = 
'
<root>
  <row>
    <value>1</value>
  </row>
  <row>
    <value>2</value>
  </row>
</root>
'

select T.N.value('value[1]', 'int')
from @XML.nodes('/root/row') as T(N)

परिणाम:

(No column name)
1
2

संपूर्ण XML प्राप्त करने के लिए:

select T.N.query('.')
from @XML.nodes('/root/row') as T(N)

परिणाम:

(No column name)
<row><value>1</value></row>
<row><value>2</value></row>



  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. टी-एसक्यूएल सीटीई भौतिकीकरण तकनीक एसक्यूएल सर्वर 2012 पर काम नहीं कर रही है

  4. SQL 2005 में उपयोग के लिए मैं SQL 2008 MDF फ़ाइल को डाउनग्रेड कैसे करूँ?

  5. एसक्यूएल सर्वर :एसयूएम () कई पंक्तियों सहित जहां खंड शामिल हैं