将XML转换为表SQL Server 2005
我想知道如何读取XML数据并将其转换为T-SQL中的表 例如:将XML转换为表SQL Server 2005,sql,sql-server,xml,tsql,sql-server-2005,Sql,Sql Server,Xml,Tsql,Sql Server 2005,我想知道如何读取XML数据并将其转换为T-SQL中的表 例如: <t1> <t2> <val>Opel</val> <t3>Merriva</t3> <t3>Zafira</t3> </t2> <t2> <val>Fiat</val> &l
<t1>
<t2>
<val>Opel</val>
<t3>Merriva</t3>
<t3>Zafira</t3>
</t2>
<t2>
<val>Fiat</val>
<t3>Albea</t3>
</t2>
</t1>
表2:
id id_Table1 value
-----------------------------------
1 1 Merriva
2 1 Zafira
3 2 Albea
我没有活动的SQL Server 2005来测试这个男孩,现在是2018年。。。!!!,但我认为,这个查询在如此古老的版本中也适用: 声明@xml= 不 欧宝 梅里瓦 赛飞利 法令 阿尔贝 '; -CTE将返回带有运行索引的CarName以及作为XML节点的相关数据 以汽车为中心 通过选择NULL作为t2\U索引,在订单上方选择行号 ,t2.valueN'val/text[1]',N'nvarchar100'作为t2_val ,t2.将't3'查询为t3_节点 来自@xml.nodesN'/t1/t2'At2 -此部分将使用相关类型数据的运行编号附加所有相关数据 选择汽车。* ,通过选择NULL作为CarValueIndex超订单的行号 ,t3.valueN'text[1]',N'nvarchar100'作为CarValue 将结果写入临时表 来自汽车 外部应用t3_节点。节点't3'位于3; -所有数据都不规范化 从tmpCars中选择*; -此查询将返回父行 选择t2_索引作为CarID ,t2_val AS CarName 来自tmpCars 按t2_指数分组,t2_值; -此查询将返回相关的子数据 选择CarValueIndex作为CarTypeID ,t2_指数为fk_CarID ,CarValue作为CarType 来自TMPCAR; 去 升降台TMPCAR; 如果有机会使用更现代的SQL Server,你真的应该这样做 使现代化 根据,v2008引入了.value和.nodes函数。但我有一个黑暗的记忆,它已经在2005年工作了,可能与一些服务包一起。。。试试看
id id_Table1 value
-----------------------------------
1 1 Merriva
2 1 Zafira
3 2 Albea