SQL Server:查找 XML 缺少标签的记录

era*_*los 2 xml sql t-sql sql-server

我有一个名为:XMLIndex 的表,其中包含一个名为:XMLRec 的列,该列保存 XML 文件和值的结构。

其中一些记录缺少名为:<ISO></ISO>

我的问题是:我需要运行什么类型的查询才能找到表 XMLIndex 中缺少标签的所有记录<ISO>

这是包含 ISO 标记的 XMLRecord XML 示例:

<XMLRecord>
  <pn>0042761</pn>
  <SRI>4.40</SRI>
  <igm>/images/images/0042761.gif</img>
  <ISO>ZW</ISO>
  <ListPrice>$5.50</ListPrice>  
</XMLRecord>
Run Code Online (Sandbox Code Playgroud)

以及具有多个 ISO 的一个(查看标签的微小差异):

<XMLRecord>
  <pn>0042762</pn>
  <SRI>4.40</SRI>
  <igm>/images/images/0042762.gif</img>
  <ISOs>ZW+NZ+AU+BR</ISOs>
  <ListPrice>$5.50</ListPrice>  
</XMLRecord>
Run Code Online (Sandbox Code Playgroud)

缺少 ISO 标记的记录是 XML 结构不包含此类标记的记录。

非常感谢任何例子。

谢谢。

Adu*_*cci 5

您可以使用XQuery 存在方法。

检查 xml 文档中的任意位置:

select *
from XMLIndex
where XMLRec.exist('//ISO') = 0
Run Code Online (Sandbox Code Playgroud)

检查具体位置:

where XMLRec.exist('/XMLRecord/ISO') = 0
Run Code Online (Sandbox Code Playgroud)