आपको 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>