【发布时间】:2010-01-28 21:51:43
【问题描述】:
假设我在 SQL Server 中有一个表,其中包含带有内部连接的查询的结果。
以下 XQuery:
select @code.query
(
'for $s in /root/row
return
<Foo Language="{data($s/@lang)}" Method="{data($s/@method)}" Returns="{data($s/@returnType)}">
<Bar ReferencedBy="{data($s/@callers)}" Static="{data($s/@static)}" />
</Foo>'
)
及其结果:
<Foo Language="C#" Method="getFoos" Returns="FooCollection">
<Bar ReferencedBy="Baz" Static="true" />
</Foo>
<Foo Language="C#" Method="getFoos" Returns="FooCollection">
<Bar ReferencedBy="Bar" Static="false" />
</Foo>
其实我想要的是:
<Foo Language="C#" Method="getFoos" Returns="FooCollection">
<Bar ReferencedBy="Baz" Static="true" />
<Bar ReferencedBy="Bar" Static="false" />
</Foo>
为了避免求助于 LINQ 和哈希表,使用 XQuery 执行此操作的最佳方法是什么?
【问题讨论】:
-
看起来您需要在 FOO 标记内使用 for 循环来迭代您要填充的 BAR 值。
标签: sql-server xml group-by xquery