1
<Root>
    <Sub>
        <Name>a</Name>
        <Value>1</Value>
    </Sub>
    <Sub>
        <Name>b</Name>
        <Value>2</Value>
    </Sub>
</Root>

我知道我可以做一个

SELECT * FROM table WHERE column.exist('/Root/Sub[Name="a" and Value="1"]') = 1

但是如何过滤两个名称/值对?a/1 和 b/2?

4

2 回答 2

2

怎么样:

SELECT * FROM table WHERE (column.exist('/Root/Sub[Name="a" and Value="1"]') = 1 OR (column.exist('/Root/Sub[Name="b" and Value="2"]') = 1)

注意额外的括号。

于 2013-02-19T20:30:16.433 回答
-1

这将按预期工作:

SELECT *
  FROM TableName
 WHERE XMLColumnName.Exist('/Root/Sub[Id = "IdValue"][LimitType = "LimitTypeName"]') = 1
于 2015-02-10T04:11:55.857 回答