如何将以下XML扩展到TSQL中的表中?
我对SQL server中的XML不是很熟悉。我需要将下面的XML扩展到一个表中,但我不知道怎么做。有人能帮我吗如何将以下XML扩展到TSQL中的表中?,xml,tsql,sql-server-2012,Xml,Tsql,Sql Server 2012,我对SQL server中的XML不是很熟悉。我需要将下面的XML扩展到一个表中,但我不知道怎么做。有人能帮我吗 <MainNode> <Type>Type1</Type> <Group>Group1</Group> <IDFile>File1</IDFile> <IDFile>File2</IDFile> <IDFile>File3&l
<MainNode>
<Type>Type1</Type>
<Group>Group1</Group>
<IDFile>File1</IDFile>
<IDFile>File2</IDFile>
<IDFile>File3</IDFile>
<IDFile>File4</IDFile>
<XP>XP1</XP>
<SubNode>
<Data1>Data1</Data1>
<Data2>Data2</Data2>
</SubNode>
<Parameters>
<Parameter>
<Name>PName1</Name>
<Value>PVal1</Value>
</Parameter>
<Parameter>
<Name>PName2</Name>
<Value>PVal2</Value>
</Parameter>
</Parameters>
</MainNode>
我需要像这样的东西:
Type1 | Group1 | XP1 | Param1.1 Name | Param1.1 Value
Type1 | Group1 | XP1 | Param1.2 Name | Param1.2 Value
Type2 | Group2 | XP2 | Param2.1 Name | Param2.1 Value
…你的问题不是很清楚。。。XML中有许多不同的数据结构。。。在一个查询中检索所有数据没有多大意义 在下面的代码中,我将向您展示如何从中获得一些东西。我希望您能获得足够的模板,以便自己管理其余的模板
declare @XML xml =
'<MainNode>
<Type>Type1</Type>
<Group>Group1</Group>
<IDFile>File1</IDFile>
<IDFile>File2</IDFile>
<IDFile>File3</IDFile>
<IDFile>File4</IDFile>
<XP>XP1</XP>
<SubNode>
<Data1>Data1</Data1>
<Data2>Data2</Data2>
</SubNode>
<Parameters>
<Parameter>
<Name>PName1</Name>
<Value>PVal1</Value>
</Parameter>
<Parameter>
<Name>PName2</Name>
<Value>PVal2</Value>
</Parameter>
</Parameters>
</MainNode>';
--键值对:在
中有KVP:
SELECT
SubNode.value('local-name(.)', 'NVARCHAR(100)') AS NodeName,
SubNode.value('.', 'NVARCHAR(10)') AS NodeValue
FROM
@XML.nodes('/MainNode/SubNode/*') AS N(SubNode);
--在
中有一个典型的1:n
相关子结构:
SELECT
Prm.value('Name[1]', 'NVARCHAR(100)') AS ParamterName,
Prm.value('Value[1]', 'NVARCHAR(10)') AS ParameterValue
FROM
@XML.nodes('/MainNode/Parameters/Parameter') AS N(Prm);
你的问题不是很清楚。。。XML中有许多不同的数据结构。。。在一个查询中检索所有数据没有多大意义 在下面的代码中,我将向您展示如何从中获得一些东西。我希望您能获得足够的模板,以便自己管理其余的模板
declare @XML xml =
'<MainNode>
<Type>Type1</Type>
<Group>Group1</Group>
<IDFile>File1</IDFile>
<IDFile>File2</IDFile>
<IDFile>File3</IDFile>
<IDFile>File4</IDFile>
<XP>XP1</XP>
<SubNode>
<Data1>Data1</Data1>
<Data2>Data2</Data2>
</SubNode>
<Parameters>
<Parameter>
<Name>PName1</Name>
<Value>PVal1</Value>
</Parameter>
<Parameter>
<Name>PName2</Name>
<Value>PVal2</Value>
</Parameter>
</Parameters>
</MainNode>';
--键值对:在
中有KVP:
SELECT
SubNode.value('local-name(.)', 'NVARCHAR(100)') AS NodeName,
SubNode.value('.', 'NVARCHAR(10)') AS NodeValue
FROM
@XML.nodes('/MainNode/SubNode/*') AS N(SubNode);
--在
中有一个典型的1:n
相关子结构:
SELECT
Prm.value('Name[1]', 'NVARCHAR(100)') AS ParamterName,
Prm.value('Value[1]', 'NVARCHAR(10)') AS ParameterValue
FROM
@XML.nodes('/MainNode/Parameters/Parameter') AS N(Prm);
当使用您提供的示例XML数据填充时,您最终想要的SQL表是什么样子的?当使用您提供的示例XML数据填充时,您最终想要的SQL表是什么样子的?正是我需要的,10x@Shnugo正是我需要的,10x@Shnugo