Sql server SQL XML查询帮助
我在SQLServer2008数据库中有一个表,其中包含一个包含XML数据的nvarchar(MAX)列。数据表示搜索条件。下面是XML对于搜索条件的外观,其中包含一个顶级“或”组,该组包含一个单一条件和一个嵌套的两个条件“和”组 我得到的结果是:Sql server SQL XML查询帮助,sql-server,xquery,Sql Server,Xquery,我在SQLServer2008数据库中有一个表,其中包含一个包含XML数据的nvarchar(MAX)列。数据表示搜索条件。下面是XML对于搜索条件的外观,其中包含一个顶级“或”组,该组包含一个单一条件和一个嵌套的两个条件“和”组 我得到的结果是: <FieldIDs> <int>1026</int> <int>478</int> </FieldIDs> <FieldIDs> <int>1
<FieldIDs>
<int>1026</int>
<int>478</int>
</FieldIDs>
<FieldIDs>
<int>1017</int>
</FieldIDs>
<FieldIDs>
<int>1018</int>
</FieldIDs>
获取所有字段id,并将其与要检查的设置id进行比较。XQuery的
=
-运算符以基于集合的语义进行比较,因此如果左侧的一个ID等于右侧的一个ID,则该表达式的计算结果将为true
//FieldIDs/int = (42, 478)
由于“478”是字段ID,因此此查询将返回true。“42”是一个不可用的选项
我不确定您是否能够将结果强制转换为某个sql server布尔类型,因为我还没有运行一个,但您可以很容易地自己尝试
如果您还对包含的节点感兴趣,可以使用以下查询:
select CAST(OptionalConditions as xml).query('//FieldIDs')
from tblMyTable
//FieldIDs/int[. = (42,478)]
太好了,成功了。谢谢
//FieldIDs/int = (42, 478)
//FieldIDs/int[. = (42,478)]