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

SQL Server 2012使用XQuery筛选无TextReadingId的Step节点方法

解决方法

你可以使用XML类型的exist()方法判断节点是否存在,该方法返回位值:节点存在返回1,不存在返回0,直接在WHERE子句加判断条件即可,完整查询语句如下:

SELECT
    x.XmlCol.value('(StepId)[1]', 'uniqueidentifier') as StepId
FROM tblStepList s
CROSS APPLY s.Data.nodes('/Steplist/Step') x(XmlCol)
WHERE x.XmlCol.exist('TextReadingId') = 0

逻辑说明

  • x.XmlCol对应你拆分出来的每个<Step>节点,直接判断这个节点下是否存在<TextReadingId>子节点即可,不需要再写完整的XML路径
  • 执行后返回的结果和你期望的一致:
StepId
------------------------------------
E36A3450-1C8F-44DA-B4D0-58E5BFE2A987
11D70A50-08AC-4767-A0D3-87717384FF45

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:15:00