1

我的任务是找到所有<nodeA>为空的值。这可能意味着它为 NULL,或者它不存在。

我制作了以下查询

SELECT *
FROM table
WHERE AttributeList.value ('(/AttributeList/nodeA)[1]', 'varchar(50)') IS NULL

但是它只返回看起来像的结果<AttributeList />

我很好奇的是这是否也会返回一个看起来像

<AttributeList>
    <nodeA></nodeA>
</AttributeList>
4

2 回答 2

1

无需从 XML 中提取值。改用存在

select *
from YourTable 
where AttributeList.exist('/AttributeList/nodeA/node()') = 0
于 2013-05-22T05:33:38.820 回答
0

用于fn:empty(...)检查是否有孩子。如果需要,请记住处理属性和其他节点(元素、文本节点等)。

//*[empty( (./node(), ./attribute()) )]

如果您想重新定义“空”,W3schools.com 对轴步骤有一个很好的概述。

于 2013-05-21T23:04:09.487 回答