我目前有这个代码,它将
XML存储在名为Storage的
XML类型列中,名为Storage.
CREATE TABLE Storage ( ID INT IDENTITY(1,1) PRIMARY KEY,data XML NOT NULL ) GO INSERT INTO Storage(data) VALUES('<footballteams> <team manager="Benitez"> <name>Liverpool</name> <ground>Anfield</ground> </team> <team manager="Mourinho"> <name>Chelsea</name> <ground>Stamford Bridge</ground> </team> <team manager="Wenger"> <name>Arsenal</name> <ground>Highbury</ground> </team> </footballteams>');
我想创建一个名为Football View的视图,它将数据分解并以表格形式显示:FootballView(TeamName,Manager,Ground).
我之前使用.nodes()方法将完整文档粉碎成表格列,但在创建视图时似乎更具挑战性(我有使用视图的原因).问题是之前我只是在一个变量@input上调用.nodes,它是DECLARE,因为xml =’xmlcontent’但是有了这个不能完成的视图,我想解析存储表列中包含的XML.
有任何想法吗?提前致谢.
编辑:
以前,如果我已经切碎到表中,这将是我使用的代码:
SELECT TeamName = Foot.value('(name)[1]','varchar(100)'),Manager = Foot.value('(@manager)',Ground = Foot.value('(ground)[1]','varchar(100)') FROM @input.nodes('/footballteams/team') AS Tbl(Foot)
EDIT2:这是我期望的输出.
你需要使用CROSS APPLY
SELECT TeamName = Foot.value('(name)[1]','varchar(100)') FROM Storage S CROSS APPLY data.nodes('/footballteams/team') AS Tbl(Foot)
CROSS APPLY和OUTER APPLY允许您有效地加入当前数据集中的XML集合.
原文地址:https://www.jb51.cc/xml/292567.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。