使用查询选择xml数据

时间:2015-09-23 03:42:49

标签: sql sql-server

我需要一些帮助来查询xml中的数据,

这是我正在使用的xml和查询

columns Property 我能够返回除PhonetypeCode值之外的所有值,即“19”,我不确定我是否正确。
任何帮助请

2 个答案:

答案 0 :(得分:0)

select xmldata.p.value('./PhoneTypeCode[1]/@tc', 'int') as [PhoneTypeCode]
from @XML.nodes('/Phone') xmldata(p);

答案 1 :(得分:0)

你可以这样做 -

DECLARE @XML XML;
SET @XML = CAST('<Phone>
                   <PhoneTypeCode tc="19"/>
                   <CountryCode>US</CountryCode>
                   <AreaCode>217</AreaCode>
                   <DialNumber>8332046</DialNumber>
                 </Phone>' AS XML);
SELECT p.value('(.//@tc)[1]','int') AS PhoneTypeCode,
       p.value('data(CountryCode[1])','varchar(50)') AS CountryCode,
       p.value('data(AreaCode[1])','int') AS AreaCode,
       p.value('data(DialNumber[1])','int') AS DialNumber
FROM @XML.nodes('/Phone') xmlData(p);