0

我有一张桌子

create table Profiles 
(id int, 
 xml_data xml
)

它有一个 xml 列,对于每一行,我都有相同的 xml,如下所示:

<Profile>
   <personalInfo>
        <contactInfo>
          <firstName>John</firstName>
          <lastName>Doe</lastName>
          <address>22 Park Avenue</address>
          <address2 />
          <city>Guilford</city>
          <state>CT</state>
          <zip>11221</zip>
        </contactInfo>
  </personalInfo>
  <Languages>
  <Language> English </Language> 
  <Language> French </Language> 
  <Language> German </Language>           
  <Language> Hungarian </Language> 
  </Languages>
</Profile>

我只想把这个 xml 的语言部分放在另一个 XML 变量中。

我怎么做 ?

4

2 回答 2

1

看看这样的东西

DECLARE @xml XML

SET @xml =
'<Profile>
       <personalInfo>
            <contactInfo>
              <firstName>John</firstName>
              <lastName>Doe</lastName>
              <address>22 Park Avenue</address>
              <address2 />
              <city>Guilford</city>
              <state>CT</state>
              <zip>11221</zip>
            </contactInfo>
      </personalInfo>
      <Languages>
      <Language> English </Language> 
      <Language> French </Language> 
      <Language> German </Language>           
      <Language> Hungarian </Language> 
      </Languages>
    </Profile>'

SELECT @xml.query('Profile/Languages')

您也可以对表格的列执行此操作。

SELECT  *,
        xml_data.query('Profile/Languages')
FROM    @Table
于 2009-12-15T13:49:37.077 回答
1

这行得通吗?查询使用第一行的 xml_data

declare @x2 xml
select top 1 @x2=xml_data.query('Profile/Languages') 
from Profiles
于 2009-12-15T13:51:18.057 回答