【发布时间】:2015-12-08 14:53:07
【问题描述】:
给定表 y 中的 XML 数据类型列 x,其值如下:
<a>
<b>
<c>1</c>
<c>2</c>
<c>3</c>
</b>
</a>
如何使用 T-SQL XQuery 获取结果集,以便每个 <c> 元素值返回一行?
假设表 y 也有 z 列,其中包含 x 列中 <c> 元素的数量——这样我们就有了一个额外的列要返回。
到目前为止,我们能想到的最好的方法是:
select
z,
cvalues = x.query('data(a/b/c)')
from y
然而,上面将在 y 中每行返回一行,并在 cvalues 列中为<c> 元素的值提供一个空格分隔的列表。
我们怎样才能得到这样的结果集:
z cvalues
3 1
3 2
3 3
而不是我们现在得到的:
z cvalues
3 1 2 3
谢谢!
【问题讨论】:
标签: sql sql-server xml tsql xquery