一个xml元素(带子节点)到很多表行

时间:2012-09-27 22:10:46

标签: xml sql-server-2000

我需要将以下XML结构转换为以下表结构(在SQL Server 2000中)

<family>
  <parent>
    <id>1</id>
    <child>test1</child>
    <child>test2</child>
  </parent>
  <parent>
    <id>2</id>
    <child>test3</child>
    <child>test4</child>
  </parent>
</family>

表中的示例数据:

parent_id child
1         test1
1         test2
2         test3
2         test4

查询:

SELECT Child FROM 
  OPENXML (@hdoc, 'family/parent/child') 
    WITH(Child nvarchar(256) '.')

给出结果:

test1
test2
test3
test4

查询#2:

SELECT ParentID, Child FROM 
  OPENXML (@hdoc, 'family/parent') 
    WITH(
      Child nvarchar(256) 'child/.',
      ParentID int 'id/.'
    )

给出结果:

1 test1
2 test3

我如何同时获得父ID和所有孩子?

1 个答案:

答案 0 :(得分:1)

SELECT ParentID, Child FROM 
  OPENXML (@hdoc, 'family/parent/child') 
    WITH(
      Child nvarchar(256) '.',
      ParentID int '../id'
    )