我正在使用SQL Server中的xml数据类型列。我知道如何通过使用query()
或value()
函数从XML列中提取值,但我的问题略有不同。
例如:
<Types>
<request>
<Rollcount>34</Rollcount>
</request>
</Types>
<Types>
<general>
<Rollcount>5</Rollcount>
</general>
</Types>
<Types>
<land>
<Rollcount>21</Rollcount>
<land>
</Types>
在上面的例子中,您可以看到,XML有不同的标记,如<request>
, <general>
和<land>
。没有固定的模式
现在我想提取<Rollcount>
的值。你能告诉我怎么做吗?
可以使用通配符。如果我们假设顶端节点总是Types
, Rollcount
总是第三层,那么你可以这样做:
DECLARE @XML xml ='<Types>
<general>
<Rollcount>5</Rollcount>
</general>
</Types>';
SELECT X.RC.value('.','int')
FROM @XML.nodes('Types/*/Rollcount')X(RC);
,db<的在小提琴