3

我是 SQL Server 和 T-SQL 的新手。如何在 SQL Server 2008 R2 中查询出此 xml 中存储的信息?

XML:

<smp:Root xmlns:smp="http://tempuri.org/smp.xsd" header="Test Title">
  <smp:Sections>
    <smp:G3 idnumber="01">
      <SectionHost>ABC</SectionHost>
    </smp:G3>
    <smp:G2 idnumber="01">
      <SectionHost>DEF</SectionHost>
    </smp:G2>
  </smp:Sections>
</smp:Root>
4

1 回答 1

3

如果您将Xml存储在Xml列中,只需value method使用.shredXml

下次尝试发布一些DDL, DML向我们展示您尝试过的内容,您的表格结构等。

但是试试这个

WITH XMLNAMESPACES (Default 'http://tempuri.org/smp.xsd')
SELECT     
    a.value('@header', 'nvarchar(50)') as Header,
    b.value('local-name(.)', 'nvarchar(50)') as Sections,
    b.value('@idnumber' ,'int') as IdNumber,
    b.value('.' , 'nvarchar(20)') as Host

From ATable As x   

                Cross Apply x.AXmlColumn.nodes('Root') a(a) 
                               Cross Apply a.nodes('Sections/*') b(b)

以下是一些帮助links您入门的方法:

https://www.simple-talk.com/sql/learn-sql-server/the-xml-methods-in-sql-server/

http://blog.sqlauthority.com/2008/01/15/sql-server-what-is-dml-ddl-dcl-and-tcl-introduction-and-examples/

http://msdn.microsoft.com/en-us/library/ms189254.aspx

于 2013-06-22T22:32:00.713 回答