在SQL Server中将XML从表列分解到视图中

在SQL Server中将XML从表列分解到视图中,sql,xml,views,shred,Sql,Xml,Views,Shred,我目前有一段代码,它将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">

我目前有一段代码,它将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>'); 
EDIT2:这是我期望的输出


您需要使用
交叉应用

SELECT     
        TeamName = Foot.value('(name)[1]', 'varchar(100)'),     
        Manager = Foot.value('(@manager)', 'varchar(100)'),     
        Ground = Foot.value('(ground)[1]', 'varchar(100)')   
FROM    
    Storage S 
        CROSS APPLY data.nodes('/footballteams/team') AS Tbl(Foot)

交叉应用
外部应用
允许您有效地加入当前数据集中的XML集合

你能把你用来分解成列的代码,以及你是如何转换它的。你期望得到什么样的输出?把这个查询放在视图中有什么问题?问题是之前我刚刚在一个变量@input上调用了.nodes,这个变量被声明为xml='xmlcontent',但是在视图中这是做不到的,我想解析存储表列中包含的XML。我可以问一下,cross和outer apply之间的区别是否也包括null?@user1320771-是两种表单上的页面,包括这些区别。
SELECT     
        TeamName = Foot.value('(name)[1]', 'varchar(100)'),     
        Manager = Foot.value('(@manager)', 'varchar(100)'),     
        Ground = Foot.value('(ground)[1]', 'varchar(100)')   
FROM    
    Storage S 
        CROSS APPLY data.nodes('/footballteams/team') AS Tbl(Foot)