我有一张桌子
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变量中。
我该怎么做?
答案 0 :(得分: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
答案 1 :(得分:1)
这有用吗?该查询使用第一行的xml_data
declare @x2 xml
select top 1 @x2=xml_data.query('Profile/Languages')
from Profiles