首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取多个内部节点值

如何获取多个内部节点值
EN

Stack Overflow用户
提问于 2014-01-25 11:06:54
回答 1查看 34关注 0票数 0
代码语言:javascript
复制
DECLARE @Test TABLE (ID INT NOT NULL, XmlContent XML)

INSERT INTO @Test VALUES (1,
   '<location>
      <locationName>Loc1</locationName>
      <locationInchargeName>User1</locationInchargeName>
    </location>
    <location>
      <locationName>Loc2</locationName>
      <locationInchargeName>User2</locationInchargeName>
      <locationInchargeName>User3</locationInchargeName>
    </location>')

SELECT ID, E.P.value('locationName[1]','varchar(200)') as locationName, 
    E.P.value('locationInchargeName[1]','varchar(200)') AS locationInchargeName 
FROM @Test
CROSS APPLY XmlContent.nodes('location') as E(P)

这给出了每个位置名的输出和第一个位置输入名。

代码语言:javascript
复制
locationName   locationInchargeName
-------------  ---------------------    
Loc1            User1
Loc2            User2

如何获得所有locationInchargeNames的名称及其位置名称?就像这样:

代码语言:javascript
复制
locationName   locationInchargeName
-------------  ---------------------    
Loc1            User1
Loc2            User2
Loc2            User3     

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-25 11:22:24

试试这个:

代码语言:javascript
复制
SELECT 
    ID, 
    XTbl1.Loc.value('locationName[1]','varchar(200)') as locationName, 
    XTbl2.InCharge.value('.','varchar(200)') AS locationInchargeName 
FROM @Test
CROSS APPLY XmlContent.nodes('location') as XTbl1(Loc)
CROSS APPLY XTbl1.Loc.nodes('locationInchargeName') as XTbl2(InCharge)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21349726

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档