Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何以下面提到的格式读取此XML-SQL Server 2012_Sql Server_Xml_Sql Server 2012 - Fatal编程技术网

Sql server 如何以下面提到的格式读取此XML-SQL Server 2012

Sql server 如何以下面提到的格式读取此XML-SQL Server 2012,sql-server,xml,sql-server-2012,Sql Server,Xml,Sql Server 2012,任何帮助都将不胜感激!正在尝试将下面的XML转换为SQL Server中的表结构 <SearchKey EntityType="2" userid="12" QName="search1"> <Groups> <Group seq="1"> <GroupID>1</GroupID> <Column seq="1">2</Column>

任何帮助都将不胜感激!正在尝试将下面的XML转换为SQL Server中的表结构

<SearchKey EntityType="2" userid="12" QName="search1">
    <Groups>
        <Group seq="1">
            <GroupID>1</GroupID>
            <Column seq="1">2</Column>
            <Column seq="2">3</Column>
        </Group>
        <Group seq="2">
            <GroupID>2</GroupID>
            <Column seq="1">1</Column>
            <Column seq="2">2</Column>
        </Group>
        <Group seq="3">
            <GroupID>3</GroupID>
            <Group seq="1">1</Group>
            <Column seq="2">2</Column>
        </Group>
        <Group seq="4">
            <GroupID>4</GroupID>
            <Group seq="1">1</Group>
            <Group seq="2">2</Group>
            <Column seq="3">3</Column>
        </Group>
    </Groups>
</SearchKey>
下表格式:

GroupID SeqID   ColumnValue ChildGroupID
1       1       2           NULL
1       2       3           NULL
3       1       NULL        1
3       2       2           NULL
4       1       NULL        1
4       2       NULL        2
4       3       3           NULL
还尝试了以下代码,但无法检索上述格式的记录:

SELECT a.b.value('GroupID[1]', 'varchar(10)') AS GroupID
    ,a.b.value('(@GrpSeq)[1]', 'varchar(50)')  AS GrpSeq
    ,a.b.value('(GroupID)[1]', 'varchar(50)')  AS GroupID
    ,a.b.value('(Column/@ColSeq)[1]', 'varchar(50)') AS ColSeq
FROM @XMLString.nodes('SearchKey/Groups/Group') a(b)

感谢所有帮助:

通过read,您的意思是真的要将XML转换为所显示的表结构吗?这是一个文本表还是要输出HTML?你的问题目前还不清楚。哦,对不起,不清楚。想要将XML转换为表结构。请编辑您的问题以反映您试图完成的任务。为什么在节点子句中遗漏了SearchKey?它存在于XML中,您需要在@XMLString.nodes'/SearchKey/Groups/Group'ab中的节点中使用它,我可以使用@XMLString.nodes'/SearchKey/Groups/Group'ab读取它们,谢谢Mikael!但当存在子组时,我很难转换它们。例如:4123
SELECT a.b.value('GroupID[1]', 'varchar(10)') AS GroupID
    ,a.b.value('(@GrpSeq)[1]', 'varchar(50)')  AS GrpSeq
    ,a.b.value('(GroupID)[1]', 'varchar(50)')  AS GroupID
    ,a.b.value('(Column/@ColSeq)[1]', 'varchar(50)') AS ColSeq
FROM @XMLString.nodes('SearchKey/Groups/Group') a(b)