从SQL中的XML计算子标记的数量

时间:2015-05-08 20:43:32

标签: mysql sql-server xml sqlxml

从代码发送到SQL服务器的XML。我的XML看起来像这样:

Declare @MainXML XML=
    '<root>
    <a>JJ</a>
    <a>KK</a>
    </root>'

从上面的xml中,我想将2存储为SQL中column1下的子元素“a”的数量。

Column1
-------
   2

你能帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

我会使用xpath

执行此操作
select @MainXML.query('count(root/a)')

sql fiddle demo

答案 1 :(得分:0)

如果您正在使用mssql server,那么您可以利用OPENXML支持。您可以通过在解析的XML上使用a来获取SELECT个节点的计数:

Declare @MainXML XML =
    '<root>
    <a>JJ</a>
    <a>KK</a>
    </root>'

SELECT COUNT(MainXML.A.value('.', 'VARCHAR(100)')) AS Cnt
FROM @MainXML.nodes('root/a') MainXML(A)