我试图计算我已存储在我的表格中的XML clob中两个相同父节点内的子节点数。
XML Clob的格式如下:
<ProductS>
<id>1</id>
<Discount></Discount>
<Discount></Discount>
</ProductS>
<ProductS>
<id>2</id>
<Discount></Discount>
</ProductS>
我希望我的xmlquery能够浏览这个XML clob,并确定每个ProductS中有多少Discounts,而IGNORE中有少量或零<Discount>
的那些。
所以在上面的例子中它应该返回2.
感谢。
答案 0 :(得分:0)
我刚刚意识到我的答案仅适用于SQL-SERVER。如果这有助于其他人,我会把它放在这里
以下是一个查询,它将为您提供每个产品的1条或多条折扣节点的1条记录。这是通过使用xml查询功能&#34; count()&#34;
完成的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