计数来自两个相同的父节点的xml子节点的出现
问题描述:
我想要计算我存储在我的表中的XML clob中两个相同父节点内的数字子节点。计数来自两个相同的父节点的xml子节点的出现
的XML的Clob有这样的格式:
<ProductS>
<id>1</id>
<Discount></Discount>
<Discount></Discount>
</ProductS>
<ProductS>
<id>2</id>
<Discount></Discount>
</ProductS>
我希望我的XMLQUERY去通过这个XML CLOB和确定有多少折扣也有在各产品,而忽略那些具有较少或为零<Discount>
。 所以在上面的例子中它应该返回2.
谢谢。
答
我刚刚意识到我的答案只适用于SQL-SERVER。我会让它在这里,以帮助其他人
这里是一个查询,将为您带来1记录每个产品有1个或多个折扣节点。这是通过使用XML查询功能“计数()”
declare @xml xml
set @xml = '<ProductS>
<id>1</id>
<Discount></Discount>
<Discount></Discount>
</ProductS>
<ProductS>
<id>2</id>
<Discount></Discount>
</ProductS>'
select
n.xmlNode.query('.') ProductNode
from @xml.nodes('/ProductS') n(xmlNode)
where
n.xmlNode.query('count(Discount)').value('.','int') > 0
检查这个网站做......它会帮助你 https://community.oracle.com/thread/2433392 – Moudiz