2015-05-14 52 views
0

我想要計算我存儲在我的表中的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.

謝謝。

+1

檢查這個網站做......它會幫助你 https://community.oracle.com/thread/2433392 – Moudiz

回答

0

我剛剛意識到我的答案只適用於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 
相關問題