我目前有这段代码,它将 XML 存储到一个名为 data 的 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,该变量被声明为 xml = 'xmlcontent' 但对于视图,这无法完成,我想解析存储表列中包含的 XML。
有任何想法吗?提前致谢。
编辑:
以前,如果我切碎成表格,这将是我使用的代码:
SELECT
TeamName = Foot.value('(name)[1]', 'varchar(100)'),
Manager = Foot.value('(@manager)', 'varchar(100)'),
Ground = Foot.value('(ground)[1]', 'varchar(100)')
FROM
@input.nodes('/footballteams/team') AS Tbl(Foot)
EDIT2:这是我期望的输出。