使用XPath/XQuery筛选XML列上的SQL查询
我有一个带有一个XML列的表。我想过滤掉XML中特定属性与字符串匹配的行,本质上是执行where或have 这张桌子看起来像这样使用XPath/XQuery筛选XML列上的SQL查询,sql,xpath,xquery,Sql,Xpath,Xquery,我有一个带有一个XML列的表。我想过滤掉XML中特定属性与字符串匹配的行,本质上是执行where或have 这张桌子看起来像这样 | id | xml | XML与之类似 <xml> <info name="Foo"> <data .../> </info> <xml> 但是速度太慢了 必须有更好的方法对查询的输出进行过滤。找到了它。我应该使用query()而不是query() 我的问题是 SELECT id, xm
| id | xml |
XML与之类似
<xml>
<info name="Foo">
<data .../>
</info>
<xml>
但是速度太慢了
必须有更好的方法对查询的输出进行过滤。找到了它。我应该使用query()而不是query() 我的问题是
SELECT id, xml.query('data(/xml/info/@name)') as Value
FROM Table1
WHERE xml.exist('/xml/info/[@name=sql:variable("@match")]') = 1
如果您还没有这样做,我还建议您确保在XML列上有索引。>
SELECT id, xml.query('data(/xml/info/@name)') as Value
FROM Table1
WHERE xml.exist('/xml/info/[@name=sql:variable("@match")]') = 1