过滤多个XML元素

时间:2013-02-19 19:37:19

标签: sql xml sql-server-2008 xquery xquery-sql

<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?

2 个答案:

答案 0 :(得分: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)

请注意附加的括号。

答案 1 :(得分:-1)

这将按预期工作:

SELECT *
  FROM TableName
 WHERE XMLColumnName.Exist('/Root/Sub[Id = "IdValue"][LimitType = "LimitTypeName"]') = 1