小编Puz*_*led的帖子

将嵌套XML解析为SQL表

根据所需的布局(下面)将以下XML块解析为SQL Server表的正确方法是什么?是否可以使用单个SELECT语句,没有UNION或循环?任何接受者?提前致谢.输入XML:

<ObjectData>
  <Parameter1>some value</Parameter1>
  <Parameter2>other value</Parameter2>
  <Dates>
    <dateTime>2011-02-01T00:00:00</dateTime>
    <dateTime>2011-03-01T00:00:00</dateTime>
    <dateTime>2011-04-01T00:00:00</dateTime>
  </Dates>
  <Values>
    <double>0.019974</double>
    <double>0.005395</double>
    <double>0.004854</double>
  </Values>
  <Description>
    <string>this is row 1</string>
    <string>this is row 2</string>
    <string>this is row 3</string>
  </Values>
</ObjectData>
Run Code Online (Sandbox Code Playgroud)

所需的表输出:

Parameter1  Parameter2      Dates               Values      Description

Some value  Other value 2011-02-01 00:00:00.0   0.019974    this is row 1
Some value  Other value 2011-03-01 00:00:00.0   0.005395    this is row 2
Some value  Other value 2011-04-01 00:00:00.0   0.004854    this is row 3
Run Code Online (Sandbox Code Playgroud)

我在使用OPENXML或xml.nodes()功能的SELECT SQL语句之后.例如,以下SELECT语句导致值和日期之间的生成(即值和日期的所有排列),这是我想要避免的.

SELECT 
doc.col.value('Parameter1[1]', 'varchar(20)') Parameter1, 
doc.col.value('Parameter2[1]', 'varchar(20)') Parameter2, …
Run Code Online (Sandbox Code Playgroud)

xml sql sql-server xml-parsing

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

sql ×1

sql-server ×1

xml ×1

xml-parsing ×1