Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>You don't need a table valued function, use <a href="http://www.15seconds.com/issue/050803.htm" rel="nofollow">XPath to extract these values directly in a SELECT statement</a></p> <pre><code>SELECT Data.query('data(/xpath/to[@your="type"])') AS type, Data.query('data(/xpath/to[@your="value"])') AS value FROM Test /* JOINs, WHERE HAVING, GROUP BY and/or ORDER BY clauses */ </code></pre> <p><code>query()</code> executes an XPath expression, while <code>data()</code> extracts a value from the resulting XML node. </p> <p><strong>Update</strong></p> <p><a href="http://msdn.microsoft.com/en-us/library/ms345117%28v=sql.90%29.aspx" rel="nofollow">MSDN Link</a></p> <pre><code>DECLARE @testTable TABLE( XmlData XML ) INSERT INTO @testTable (XmlData) VALUES ('&lt;row&gt;&lt;node&gt;&lt;key&gt;key11&lt;/key&gt;&lt;value&gt;value11&lt;/value&gt;&lt;/node&gt;&lt;node&gt;&lt;key&gt;key12&lt;/key&gt;&lt;value&gt;value12&lt;/value&gt;&lt;/node&gt;&lt;/row&gt;') INSERT INTO @testTable (XmlData) VALUES ('&lt;row&gt;&lt;node&gt;&lt;key&gt;key21&lt;/key&gt;&lt;value&gt;value21&lt;/value&gt;&lt;/node&gt;&lt;node&gt;&lt;key&gt;key22&lt;/key&gt;&lt;value&gt;value22&lt;/value&gt;&lt;/node&gt;&lt;/row&gt;') INSERT INTO @testTable (XmlData) VALUES ('&lt;row&gt;&lt;node&gt;&lt;key&gt;key31&lt;/key&gt;&lt;value&gt;value31&lt;/value&gt;&lt;/node&gt;&lt;node&gt;&lt;key&gt;key32&lt;/key&gt;&lt;value&gt;value32&lt;/value&gt;&lt;/node&gt;&lt;/row&gt;') SELECT nref.value('key[1]', 'nvarchar(50)') AS [key], nref.value('value[1]', 'nvarchar(50)') AS value FROM @testTable CROSS APPLY XmlData.nodes('//node') AS R(nref) </code></pre> <p>Result</p> <pre><code>key11 value11 key12 value12 key21 value21 key22 value22 key31 value31 key32 value32 </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload