You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

T-SQL中如何统计XML内匹配特定值的节点出现次数

实现方法

完全可以实现,你只需要在原有XPath路径中添加值筛选谓词即可匹配到符合条件的节点再统计数量。

核心统计代码如下:

myXML.value('count(xml1/xml2/Country[text()="United States"])', 'INT')

这里通过[text()="United States"]的谓词规则,仅筛选出节点文本等于United States的Country节点再做计数,返回值改用INT类型更符合计数场景的取值范围。

完整可运行测试示例

你可以直接执行下面的代码验证效果:

DECLARE @myXML XML = '
<xml1>
    <xml2>
        <Country>United States</Country>
    </xml2>
    <xml2>
        <Country>Argentina</Country>
    </xml2>
    <xml2>
        <Country>United States</Country>
    </xml2>
</xml1>'

-- 输出符合条件的节点数量,示例中返回结果为2
SELECT @myXML.value('count(xml1/xml2/Country[text()="United States"])', 'INT') AS USCountryCount

优化提示

如果你的XML节点值可能存在前后空格的情况,可以用normalize-space()函数处理文本后再匹配,避免空格导致匹配失败:

myXML.value('count(xml1/xml2/Country[normalize-space(text())="United States"])', 'INT')

内容的提问来源于stack exchange,提问作者tsdn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.16 18:06:06