列为XML的Sql的写法

前端之家收集整理的这篇文章主要介绍了列为XML的Sql的写法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

select * from Bookmarkpoi where

poiid =31021 and BPCategoryIds.exist('//BPCategoryId[.=5]') = 1

sql语句的意思是从数据表Bookmarkpoi中查找数据,过滤条件是poiid列的值为31021,而且BPCategoryIds列(该列的内容是xml文本)中要存在BPCategoryId值为5的节点。

//的意思是查找所有的BPCategoryId节点,不管该节点处于哪一级。

update Bookmarkpoi set

BPCategoryIds.modify('delete (/BPCategoryIds/BPCategoryId[.=5])[1]')

where Poiid = 29786 and Userid = 73411

sql语句的意思是修改数据表中poiid为29786,userid是73411,而且BPCategoryIds列中有BPCategoryId值为5的节点的列,这样的列可能有多列,[1]的意思就是取所有记录中的第一个,.表示取当前节点,所以BPCategoryId[.=5]的意思就是看看所有子节点中是否有值为5的节点。

示例如下:

1.按节点值查询

2.插入XML节点:

插入之前:

插入之后:

猜你在找的XML相关文章