我正在尝试解决以下问题,导致表示数据库中计算的对象的序列化。
我正在尝试执行查询以进行报告,并且需要在XML层次结构的不同部分中找到位于相同位置的节点(这些节点来自对象的string[]
和double[]
属性的序列化)。
例如,我有类似
...<parent>
<Names>
<string>Name1</string>
<string>Name2</string>
<string>Name3</string>
</Names>
and
...<parent>
<Weights>
<double>0.5</double>
<double>0.13</double>
<double>0.2</double>
</Weights>
我希望能够查询XML blob并为每个XML blob提取Name-Weight对,以便我可以在SQL中查询而不必反序列化对象。我可以拉出名字,我可以拉出权重,但是如果我将它们组合起来就会出现一个交叉查询,因为我正在努力使它们在位置匹配。我认为答案可能是创建两个视图,一个用于名称,一个用于权重,并将它们连接到位置,但在查询中不允许position(),除非它类似于[position() < 6]
。
答案 0 :(得分:0)
通过创建2个单独的视图然后创建聚合视图来解决问题。我用了
ROW_NUMBER() OVER(PARTITION BY Id ORDER BY Id) as ItemPosition
作为每个查询/视图中的一列。然后我加入了Id和ItemPosition。不确定这是否是最佳方式,但至少它是匹配相关项目。