我在列中有以下xml内容,
<Certification name="ACT" type=""/>
<Certification name="CERTIFIED PEDIATRIC NURSE" type="Certification"/>
<Certification name="LICENSED VOCATIONAL NURSE (LVN)" type="License"/>
我的问题是当我发现“类型”属性为空时,应该终止该单个标记。
例如我需要输出如下,
<Certification name="CERTIFIED PEDIATRIC NURSE" type="Certification"/>
<Certification name="LICENSED VOCATIONAL NURSE (LVN)" type="License"/>
在上面的输出中,空'type'属性已被删除。
那么有人可以建议如何使用sql查询吗?
答案 0 :(得分:1)
你应该可以做这样的事情......
DECLARE @xml as table(xmlData xml)
insert into @xml(xmlData)
select '<Certification name="ACT" type=""/><Certification name="CERTIFIED PEDIATRIC NURSE" type="Certification"/><Certification name="LICENSED VOCATIONAL NURSE (LVN)" type="License"/>'
SELECT xmlData.query('/Certification[@type!=""]') as filteredXml
FROM @xml T
正如您已经在表格列中获得的那样,您可以使用最后一个select语句分别用您的表名和表字段替换@xml和xmlData