查询XML类型数据列并插入SQL Server表

时间:2015-09-08 21:02:27

标签: sql sql-server xml parsing

希望有人可以帮我解决SQL Server问题,在我们的一个表中,我有一个longtext数据类型,其中包含XML类型格式的数据,如下所示:

<entry name=\"cleaned_sectors\" type=\"uint\">585937500</entry>\r\n<entry name=\"bad_sectors\" type=\"uint\">0</entry>\r\n<entry name=\"state\"

通常,当我在表中遇到XML时,它看起来像这样:

<header>data</Header><Manufacturer>Dell</Manufacturer>

我生成一个查询以获取如下数据:

SELECT 
    Tbl.Col.value('Header[1], 'nvarchar(50)'), Tbl.Col.value('manufacturer[1].'nvarchar(50)') 
FROM ...

但是你会注意到这个数据不是标准的XML,并且每个标签都包含使用\“有没有办法可以查询包含的数据,然后将其导入另一个表?

预期输出将是:

Cleaned Sectors | Bad Sectors
585937500       | 0

任何查询数据的帮助都会非常棒,因为我已经尝试了几个小时。谢谢。

1 个答案:

答案 0 :(得分:0)

清理您的输入,然后转换为XML并一如既往地使用。

SELECT
  CAST(
    REPLACE(
      REPLACE('<entry name=\"cleaned_sectors\" type=\"uint\">585937500</entry>\r\n'
      ,'\"', '"')
   ,'\r\n', '')
  AS XML)