需要帮助从查询结果中提取所有xml数据并移动到表中

时间:2014-04-10 16:45:07

标签: sql sql-server xml

我第二次来到这里,感谢上一个问题的所有帮助!

我有一个简单的查询,它提供了我和项目ID及其细节。具体是xml。我需要将xml数据放入表中,但需要与id号相关联。 xml中有不同的名称,但我需要将它们作为列标题。

查询

select 
    ListingEbayID, ItemSpecifics
from 
    ListingsEbay

有结果的图片

!(https://lh4.googleusercontent.com/--OfYRsyrH9M/U0bHyNTBGAI/AAAAAAAABvA/oQlJjE3I3fM/w762-h132-no/query.jpg

这是1列中的xml数据,项目标识(1)

<SelectedValues>
  <SelectedValue>
    <Name>Interchange Part Number</Name>
    <Value>638-57121</Value>
  </SelectedValue>
  <SelectedValue>
    <Name>Inventory ID</Name>
    <Value>108470</Value>
  </SelectedValue>
  <SelectedValue>
    <Name>Year</Name>
    <Value>1997</Value>
  </SelectedValue>
  <SelectedValue>
    <Name>Model</Name>
    <Value>LEXUS SC300</Value>
  </SelectedValue>
  <SelectedValue>
    <Name>Stock Number</Name>
    <Value>W11218</Value>
  </SelectedValue>
  <SelectedValue>
    <Name>Conditions and Options</Name>
    <Value>PIONEER AMP OEM 86280-24111</Value>
  </SelectedValue>
  <SelectedValue>
    <Name>Part Number</Name>
    <Value>108470</Value>
  </SelectedValue>
  <SelectedValue>
    <Name>Brand</Name>
    <Value>LEXUS</Value>
  </SelectedValue>
  <SelectedValue>
    <Name>Item Condition</Name>
    <Value>Used</Value>
    <ValueID>3000</ValueID>
  </SelectedValue>
</SelectedValues>

1 个答案:

答案 0 :(得分:0)

您应该能够获得给定条目的详细信息,如下所示:

SELECT 
    Name = XC.value('(Name)[1]', 'varchar(100)'),
    Value = XC.value('(Value)[1]', 'varchar(100)'),
    ValueID = XC.value('(ValueID)[1]', 'int')
FROM 
    dbo.ListingsEbay
CROSS APPLY 
    ItemSpecifics.nodes('/SelectedValues/SelectedValue') AS XT(XC)
WHERE
    ID = 1

现在您已将数据作为关系行/列数据集,您可以使用它做任何事情。