Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用XPath/XQuery筛选XML列上的SQL查询_Sql_Xpath_Xquery - Fatal编程技术网

使用XPath/XQuery筛选XML列上的SQL查询

使用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

我有一个带有一个XML列的表。我想过滤掉XML中特定属性与字符串匹配的行,本质上是执行where或have

这张桌子看起来像这样

| 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