sql – 检查存储在XML数据类型列中的集合中是否存在值
发布时间:2020-05-24 07:52:24 所属栏目:MsSql 来源:互联网
导读:我有一个名为“tags”的 XML数据类型列. 在那,我正在存储一个集合,如下所示: ArrayOfString stringpersonal/string stringtravel/string stringgadgets/string stringparenting/string/ArrayOfString 我想选择所有
|
我有一个名为“tags”的 XML数据类型列. 在那,我正在存储一个集合,如下所示: <ArrayOfString>
<string>personal</string>
<string>travel</string>
<string>gadgets</string>
<string>parenting</string>
</ArrayOfString>
我想选择所有具有我正在寻找的值的行:例如,我想选择表中具有“travel”标签的所有行. 我知道这是有效的,如果我知道我正在寻找的值的索引: select * from posts
where tags.value('(/ArrayOfString/string)[1]','nvarchar(1000)') = 'travel'
但此查询仅在标记“travel”是节点中的第2项时有效.如何检查值是否存在,无论其位置如何? 解决方法select *
from tags
where tags.exist('/ArrayOfString/string[. = "travel"]') = 1
或者像这样,如果你想检查一个变量. declare @Val varchar(10)
set @Val = 'travel'
select *
from tags
where tags.exist('/ArrayOfString/string[. = sql:variable("@Val")]') = 1 (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
