【发布时间】:2012-04-23 06:58:21
【问题描述】:
我有一个名为“标签”的 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”是节点中的第二个项目时,此查询才有效。如何检查一个值是否存在,无论它在什么位置?
【问题讨论】:
标签: sql sql-server sql-server-2008 tsql azure-sql-database