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 に答える