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

如何删除SQL表中XML类型列内的指定重复节点

SQL Server XML类型列删除指定节点的正确写法

错误原因

你之前的语句问题出在XPath表达式不符合语法规则:

  • 不能直接把节点值写在路径层级中,需要用[]条件筛选节点内容
  • 多了冗余的闭合括号,语法不合法

正确写法

场景1:删除所有值为178.160.245.88的<AllowableIpAddress>节点

UPDATE 你的实际表名
SET 你的XML列名.modify('delete /GodBrandConfig/AllowableIpAddresses/AllowableIpAddress[text()="178.160.245.88"]')
WHERE idcolumn = 1125;

场景2:仅删除重复节点、保留1个值为178.160.245.88的节点

如果不需要把所有该值的节点都删掉,只想去重留一个,用以下写法:

UPDATE 你的实际表名
SET 你的XML列名.modify('delete /GodBrandConfig/AllowableIpAddresses/AllowableIpAddress[text()="178.160.245.88"][position() > 1]')
WHERE idcolumn = 1125;

语法说明

  • text() 用于获取XML节点的文本内容
  • [] 内写节点筛选条件,只有满足条件的节点才会被匹配
  • position() > 1 表示匹配到的节点序列中,除了第一个之外的所有节点,实现去重留一的效果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 18:36:03