首页 > 开发 > XML > 正文

SQL Convert XML to Table

2024-07-21 02:47:30
字体:
来源:转载
供稿:网友
SQL Convert xml to Table 2015-03-30 14:17 by caixia9, ... 阅读, ... 评论, 收藏, 编辑
  • 将xml nodes 属性中的值 转为table 形式
  declare @xml2 xml  set @xml2 = '<CMADatas>  <CMAData CmaName="EventCfgItem" CmaValue="sap-abc1a01" />  <CMAData CmaName="EventNode" CmaValue="" />  <CMAData CmaName="EventSource" CmaValue="" />  <CMAData CmaName="EventType" CmaValue="" />  <CMAData CmaName="EventTypeInstance" CmaValue="" /></CMADatas>' select S.value('@CmaName', 'varchar(36)') as CmaName          , S.value('@CmaValue', 'varchar(36)') as CmaName from @xml2.nodes('/CMADatas/CMAData') as T(S)

  • 将 xml tag标签的中值 转为 table 格式
DECLARE @xml xml='<mssql version="10.50.4000" name="Microsoft SQL Server Developer Edition (64-bit)">  <type name="Windows 7 Main Server">    <tag KeyValue="enabled">      <boolean>true</boolean>    </tag>    <tag KeyValue="disabled">      <tag method="Read">        <type name="Windows 8 virtual pc">          <tag KeyValue="uniqueKey">            <string>SQL Server 2008</string>          </tag>          <tag KeyValue="value 8GB">            <string>SQL Server 2000</string>          </tag>        </type>      </tag>      <tag method="Read">        <type name="Windows 8 virtual pc">          <tag KeyValue="PRimaryKey">            <string>SQL Server 2008 R2 SP1</string>          </tag>          <tag KeyValue="value 8GB">            <string>SQL Server 2005 SP3</string>          </tag>        </type>      </tag>      <tag method="Write">        <type name="Windows Server 2008 virtual pc">          <tag KeyValue="primaryKey">            <string>SQL Server 2008 R2 SP2</string>          </tag>          <tag KeyValue="value 10GB">            <string>SQL Server 2012</string>          </tag>        </type>      </tag>    </tag>  </type></mssql>';SELECT    b.c.value('@version', 'varchar(100)') [version]        ,b.c.value('@name', 'varchar(200)') [Name]        ,f.c.value('@name', 'varchar(200)') [ServerName]        ,r.c.value('@KeyValue', 'varchar(50)') [KeyValue]        ,r.c.value('(boolean)[1]', 'varchar(25)') [boolean]        ,k.c.value('@method', 'varchar(25)') [method]        ,k.c.value('@name', 'varchar(25)') [virtual_pc]        ,y.c.value('@KeyValue', 'varchar(25)') [KeyValue]        ,y.c.value('(string)[1]', 'varchar(25)') [string]FROM @xml.nodes('mssql') b(c)        CROSS APPLY b.c.nodes('type')  f(c)            CROSS APPLY f.c.nodes('tag')  r(c)                CROSS APPLY f.c.nodes('tag/tag')  k(c)        --            CROSS APPLY f.c.nodes('tag/tag/type') t(c)                        CROSS APPLY f.c.nodes('tag/tag/type/tag')  y(c);


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表