【发布时间】:2017-03-21 06:19:30
【问题描述】:
我有一列作为 xml 数据类型的 SQL 表。下面是我如何将 xml 存储在该 xml 数据类型字段中(下面给出了示例两行)
<Root>
<Element Week="201701">
<Quantity>10</Quantity>
</Element>
<Element Week="201702">
<Quantity>20</Quantity>
</Element>
<Element Week="201703">
<Quantity>30</Quantity>
</Element>
<Element Week="201704">
<Quantity>40</Quantity>
</Element>
<Element Week="201705">
<Quantity>50</Quantity>
</Element>
</Root>
<Root>
<Element Week="201701">
<Quantity>60</Quantity>
</Element>
<Element Week="201702">
<Quantity>70</Quantity>
</Element>
<Element Week="201703">
<Quantity>80</Quantity>
</Element>
<Element Week="201704">
<Quantity>90</Quantity>
</Element>
<Element Week="201705">
<Quantity>100</Quantity>
</Element>
</Root>
注意:有数百万行。每一行都有一个带有此 xml 的字段
现在,当我从
中读取(仅两行)PDI PNO PCO PCT NKT MKI DEL Root
A1C 13D A1 W2 0C1 A10 22A <Root><ElementWeek="201701"> <Quantity>10</Quantity></Element><ElementWeek="201702"> <Quantity>20</Quantity></Element><ElementWeek="201703"> <Quantity>30</Quantity></Element><ElementWeek="201704"> <Quantity>40</Quantity></Element><ElementWeek="201705"> <Quantity>50</Quantity></Element></Root>
A2C 14D Z1 W2 061 A10 22A <Root><ElementWeek="201701"> <Quantity>60</Quantity></Element><ElementWeek="201702"> <Quantity>70</Quantity></Element><ElementWeek="201703"> <Quantity>80</Quantity></Element><ElementWeek="201704"> <Quantity>90</Quantity></Element><ElementWeek="201705"> <Quantity>100</Quantity></Element></Root>
我想提取 xml 字段,下面是我的预期结果。有了这个,我将数据绑定到 PF 网格比 JSON 存储和循环每个元素的方式要快得多
预期结果:我的元素节点应该是列标题,文本节点应该是元素节点的数据。还有表现如何?
PDI PNO PCO PCT NKT MKI DEL 201701 201702 201703 201704 201705
A1C 13D A1 W2 0C1 A10 22A 10 20 30 40 50
A2C 14D Z1 W2 061 A10 22A 60 70 80 90 100
【问题讨论】:
-
这是什么风格的 SQL? SQL Server,不是吗?
-
201701到201705的值是固定的还是这些只是示例?这看起来像 year-month...您需要通用方法吗? -
你好 har07:现在我们正在使用 SQL Express 2016 版本来尝试之前的许可版本
-
你好 Shnugo:你说得对,我应该提到它。它们是年和周列(一年中 52 周,最多 2 到 3 年的数据将与相应的周数一起存储)。它们是完全动态的列。由于每个下周,前一周都会从主表中删除。此外,用户必须能够以自定义方式选择周列。例如,用户只能选择 201701 201710 和 201750 三个。那么只有三列必须以相应的数量动态出现在列中。
-
您需要一个数据透视表。为了帮助需要带有标题列 PDI、PNO、PCO、PCT、NKT、MKI 和 DEL 的 xml 文件的一小部分