﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>SQLServerCentral / SQL Server 2008 / SQL Server 2008 - General  / Read data from XML / Latest Posts</title><generator>InstantForum.NET v2.9.0</generator><description>SQLServerCentral</description><link>http://www.sqlservercentral.com/Forums/</link><webMaster>notifications@sqlservercentral.com</webMaster><lastBuildDate>Sat, 25 May 2013 20:08:44 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: Read data from XML</title><link>http://www.sqlservercentral.com/Forums/Topic1398277-391-1.aspx</link><description>[quote][b]jason123 (12/21/2012)[/b][hr]Hi Friend, thank you so much it is very helpful I can solve my current concern.[/quote]glad to help..Pedro</description><pubDate>Fri, 21 Dec 2012 08:56:56 GMT</pubDate><dc:creator>PiMané</dc:creator></item><item><title>RE: Read data from XML</title><link>http://www.sqlservercentral.com/Forums/Topic1398277-391-1.aspx</link><description>Hi Friend, thank you so much it is very helpful I can solve my current concern.</description><pubDate>Fri, 21 Dec 2012 08:53:17 GMT</pubDate><dc:creator>jason123</dc:creator></item><item><title>RE: Read data from XML</title><link>http://www.sqlservercentral.com/Forums/Topic1398277-391-1.aspx</link><description>try this (I think this is what you want..)[code="sql"]declare @x xml = '&amp;lt;row id="LD122487292000" xml:space="preserve"&amp;gt;&amp;lt;c1&amp;gt;USD&amp;lt;/c1&amp;gt;&amp;lt;c2&amp;gt;20120904&amp;lt;/c2&amp;gt;&amp;lt;c2 m="2"&amp;gt;20120904&amp;lt;/c2&amp;gt;&amp;lt;c2 m="3"&amp;gt;20121004&amp;lt;/c2&amp;gt;&amp;lt;c2 m="4"&amp;gt;20121102&amp;lt;/c2&amp;gt;&amp;lt;c3&amp;gt;20120904&amp;lt;/c3&amp;gt;&amp;lt;c3 m="2"&amp;gt;20120904&amp;lt;/c3&amp;gt;&amp;lt;c3 m="3"&amp;gt;20121004&amp;lt;/c3&amp;gt;&amp;lt;c3 m="4"&amp;gt;20121102&amp;lt;/c3&amp;gt;&amp;lt;c4&amp;gt;-250&amp;lt;/c4&amp;gt;&amp;lt;c4 m="2"&amp;gt;150&amp;lt;/c4&amp;gt;&amp;lt;c4 m="3"&amp;gt;95.18&amp;lt;/c4&amp;gt;&amp;lt;c4 m="4"&amp;gt;-145.18&amp;lt;/c4&amp;gt;&amp;lt;c5 m="4" /&amp;gt;&amp;lt;c6&amp;gt;-250&amp;lt;/c6&amp;gt;&amp;lt;c6 m="2"&amp;gt;-100&amp;lt;/c6&amp;gt;&amp;lt;c6 m="3"&amp;gt;-4.82&amp;lt;/c6&amp;gt;&amp;lt;c6 m="4"&amp;gt;-150&amp;lt;/c6&amp;gt;&amp;lt;c7 m="4" /&amp;gt;&amp;lt;c8 m="4" /&amp;gt;&amp;lt;c11&amp;gt;-12.47&amp;lt;/c11&amp;gt;&amp;lt;c13&amp;gt;0&amp;lt;/c13&amp;gt;&amp;lt;c15&amp;gt;0&amp;lt;/c15&amp;gt;&amp;lt;c51&amp;gt;20120904&amp;lt;/c51&amp;gt;&amp;lt;c52&amp;gt;20140904&amp;lt;/c52&amp;gt;&amp;lt;c53&amp;gt;-132&amp;lt;/c53&amp;gt;&amp;lt;c57&amp;gt;-250&amp;lt;/c57&amp;gt;&amp;lt;c57 m="2"&amp;gt;-250&amp;lt;/c57&amp;gt;&amp;lt;c57 m="3"&amp;gt;-250&amp;lt;/c57&amp;gt;&amp;lt;c58&amp;gt;-4.95&amp;lt;/c58&amp;gt;&amp;lt;c58 m="2"&amp;gt;-5.5&amp;lt;/c58&amp;gt;&amp;lt;c58 m="3"&amp;gt;-2.02&amp;lt;/c58&amp;gt;&amp;lt;c60&amp;gt;26.4&amp;lt;/c60&amp;gt;&amp;lt;c60 m="2"&amp;gt;26.4&amp;lt;/c60&amp;gt;&amp;lt;c60 m="3"&amp;gt;26.4&amp;lt;/c60&amp;gt;&amp;lt;c61 m="3" /&amp;gt;&amp;lt;c62&amp;gt;20120930&amp;lt;/c62&amp;gt;&amp;lt;c62 m="2"&amp;gt;20121031&amp;lt;/c62&amp;gt;&amp;lt;c62 m="3"&amp;gt;20121111&amp;lt;/c62&amp;gt;&amp;lt;c63&amp;gt;-4.9499999999998&amp;lt;/c63&amp;gt;&amp;lt;c63 m="2"&amp;gt;-5.4999999999996&amp;lt;/c63&amp;gt;&amp;lt;c63 m="3"&amp;gt;-2.0166666666665&amp;lt;/c63&amp;gt;&amp;lt;c68&amp;gt;0&amp;lt;/c68&amp;gt;&amp;lt;c80&amp;gt;20120904&amp;lt;/c80&amp;gt;&amp;lt;c162&amp;gt;0&amp;lt;/c162&amp;gt;&amp;lt;c170&amp;gt;20120904&amp;lt;/c170&amp;gt;&amp;lt;c172&amp;gt;4058.5&amp;lt;/c172&amp;gt;&amp;lt;/row&amp;gt;'declare @m INTselect @m = MAX(ISNULl(t.c.value('@m', 'int'), 0)) from @x.nodes('/row/c62') t(c)Select t.c.value('./@id', 'nvarchar(100)'), t.c.value('(c1/text())[1]', 'NVARCHAR(10)'), t.c.value('(c58[@m=sql:variable("@m")]/text())[1]', 'nvarchar(10)'), t.c.value('(c62[@m=sql:variable("@m")]/text())[1]', 'nvarchar(10)') FROM @x.nodes('/row') t(c)[/code]</description><pubDate>Wed, 19 Dec 2012 08:42:16 GMT</pubDate><dc:creator>PiMané</dc:creator></item><item><title>RE: Read data from XML</title><link>http://www.sqlservercentral.com/Forums/Topic1398277-391-1.aspx</link><description>Thank for your help, I could read it in fixed m , but i am researching how could I know max of m value because I need to take values from the last two nodes(c57  &amp; c62)?m is changed from record to record, sometimes m=3, value of m I need to read is m=3 for first record and m=2 for second record. When m=2, it should be m=2 for first record and m=1 for second recordThank</description><pubDate>Wed, 19 Dec 2012 06:08:39 GMT</pubDate><dc:creator>jason123</dc:creator></item><item><title>RE: Read data from XML</title><link>http://www.sqlservercentral.com/Forums/Topic1398277-391-1.aspx</link><description>to get the data from m=2 just do[code="sql"]Select t.c.value('./@id', 'nvarchar(100)'), t.c.value('(c1/text())[1]', 'NVARCHAR(10)'), t.c.value('(c58[@m="2"]/text())[1]', 'nvarchar(10)'), t.c.value('(c62[@m="2"]/text())[1]', 'nvarchar(10)') FROM @x.nodes('/row') t(c)[/code]instead of having "fixed" m you can declare a variable and use it.</description><pubDate>Wed, 19 Dec 2012 04:51:25 GMT</pubDate><dc:creator>PiMané</dc:creator></item><item><title>Read data from XML</title><link>http://www.sqlservercentral.com/Forums/Topic1398277-391-1.aspx</link><description>Hi Everyone,Please see xml format&amp;lt;row id="LD122487292000" xml:space="preserve"&amp;gt;  &amp;lt;c1&amp;gt;USD&amp;lt;/c1&amp;gt;  &amp;lt;c2&amp;gt;20120904&amp;lt;/c2&amp;gt;  &amp;lt;c2 m="2"&amp;gt;20120904&amp;lt;/c2&amp;gt;  &amp;lt;c2 m="3"&amp;gt;20121004&amp;lt;/c2&amp;gt;  &amp;lt;c2 m="4"&amp;gt;20121102&amp;lt;/c2&amp;gt;  &amp;lt;c3&amp;gt;20120904&amp;lt;/c3&amp;gt;  &amp;lt;c3 m="2"&amp;gt;20120904&amp;lt;/c3&amp;gt;  &amp;lt;c3 m="3"&amp;gt;20121004&amp;lt;/c3&amp;gt;  &amp;lt;c3 m="4"&amp;gt;20121102&amp;lt;/c3&amp;gt;  &amp;lt;c4&amp;gt;-250&amp;lt;/c4&amp;gt;  &amp;lt;c4 m="2"&amp;gt;150&amp;lt;/c4&amp;gt;  &amp;lt;c4 m="3"&amp;gt;95.18&amp;lt;/c4&amp;gt;  &amp;lt;c4 m="4"&amp;gt;-145.18&amp;lt;/c4&amp;gt;  &amp;lt;c5 m="4" /&amp;gt;  &amp;lt;c6&amp;gt;-250&amp;lt;/c6&amp;gt;  &amp;lt;c6 m="2"&amp;gt;-100&amp;lt;/c6&amp;gt;  &amp;lt;c6 m="3"&amp;gt;-4.82&amp;lt;/c6&amp;gt;  &amp;lt;c6 m="4"&amp;gt;-150&amp;lt;/c6&amp;gt;  &amp;lt;c7 m="4" /&amp;gt;  &amp;lt;c8 m="4" /&amp;gt;  &amp;lt;c11&amp;gt;-12.47&amp;lt;/c11&amp;gt;  &amp;lt;c13&amp;gt;0&amp;lt;/c13&amp;gt;  &amp;lt;c15&amp;gt;0&amp;lt;/c15&amp;gt;  &amp;lt;c51&amp;gt;20120904&amp;lt;/c51&amp;gt;  &amp;lt;c52&amp;gt;20140904&amp;lt;/c52&amp;gt;  &amp;lt;c53&amp;gt;-132&amp;lt;/c53&amp;gt;  &amp;lt;c57&amp;gt;-250&amp;lt;/c57&amp;gt;  &amp;lt;c57 m="2"&amp;gt;-250&amp;lt;/c57&amp;gt;  &amp;lt;c57 m="3"&amp;gt;-250&amp;lt;/c57&amp;gt;  &amp;lt;c58&amp;gt;-4.95&amp;lt;/c58&amp;gt;  &amp;lt;c58 m="2"&amp;gt;-5.5&amp;lt;/c58&amp;gt;  &amp;lt;c58 m="3"&amp;gt;-2.02&amp;lt;/c58&amp;gt;  &amp;lt;c60&amp;gt;26.4&amp;lt;/c60&amp;gt;  &amp;lt;c60 m="2"&amp;gt;26.4&amp;lt;/c60&amp;gt;  &amp;lt;c60 m="3"&amp;gt;26.4&amp;lt;/c60&amp;gt;  &amp;lt;c61 m="3" /&amp;gt;  &amp;lt;c62&amp;gt;20120930&amp;lt;/c62&amp;gt;  &amp;lt;c62 m="2"&amp;gt;20121031&amp;lt;/c62&amp;gt;  &amp;lt;c62 m="3"&amp;gt;20121111&amp;lt;/c62&amp;gt;  &amp;lt;c63&amp;gt;-4.9499999999998&amp;lt;/c63&amp;gt;  &amp;lt;c63 m="2"&amp;gt;-5.4999999999996&amp;lt;/c63&amp;gt;  &amp;lt;c63 m="3"&amp;gt;-2.0166666666665&amp;lt;/c63&amp;gt;  &amp;lt;c68&amp;gt;0&amp;lt;/c68&amp;gt;  &amp;lt;c80&amp;gt;20120904&amp;lt;/c80&amp;gt;  &amp;lt;c162&amp;gt;0&amp;lt;/c162&amp;gt;  &amp;lt;c170&amp;gt;20120904&amp;lt;/c170&amp;gt;  &amp;lt;c172&amp;gt;4058.5&amp;lt;/c172&amp;gt;&amp;lt;/row&amp;gt;You can see nodes c58 and c62, they have attribute m=2,m=3, m=4 and so on dependent on data input. I want to take the last two value of each node, for exampleif m=3,I need to read value in this formatID                                                   Currency                 C58                            C62LD122487292000                              USD                       -5.5                           20121031LD122487292000                              USD                       -2.02                         20121111We could say max of m=3 and max of m-1=2Thanks and Best regards;</description><pubDate>Wed, 19 Dec 2012 03:51:50 GMT</pubDate><dc:creator>jason123</dc:creator></item></channel></rss>