我有xml如下:
<float52>7.667000000000000e+003</float52>
<float59>7.667000000000000e+003</float59>
<float60>3.766700000000000e+004</float60>
<ntext2>Other</ntext2>
<nvarchar3>Idea</nvarchar3>
<nvarchar4>Budget</nvarchar4>
我需要对此xml中的所有浮点节点求和。我可以像这样提取每个浮点数:
@xml.value('(/float52/node())[1]','float') as FloatValue
但是如何在没有硬编码列名的情况下对所有这些浮点节点求和?
答案 0 :(得分:0)
您可以使用sum()
。
select @xml.value('sum(*)', 'float');
它将计算可以转换为某种数字的所有节点的总和。
如果您想要更具体,可以在元素名称中包含包含文本float
的元素。
select @xml.value('sum(*[contains(local-name(), "float")])', 'float');