SQLクエリがあります。同じ名前 () で異なる属性 (ident= "1cat" + "3cat") を持つ 2 つの xml ノードを合計する必要があります。ノードの数 ([1] と [3]) でノードを取得できますが、それらを「ident」で合計する必要があります。1Category と 3Category を ID で合計するにはどうすればよいですか?
DECLARE @xml XML
SET @xml =
'<cat:catalog xmlns:cat="http://datypic.com/cat" xmlns:prod="http://datypic.com/prod">
<cat:number ident="1Category">10</cat:number>
<cat:number ident="2Category">20</cat:number>
<cat:number ident="3Category">30</cat:number>
</cat:catalog>';
WITH XMLNAMESPACES (
'http://datypic.com/cat' AS cat
)
SELECT
c.c.value('(cat:number/text())[1]', 'INT') '1Category',
c.c.value('(cat:number/text())[3]', 'INT') '3Category'
FROM @xml.nodes('cat:catalog') c(c)