使用XPath / XQuery在XML列上过滤SQL查询
发布时间:2020-12-16 07:43:30 所属栏目:百科 来源:网络整理
导读:我有一个带有一个 XML列的表.我想过滤出 XML中的特定属性与字符串相匹配的行,基本上是做一个WHERE或HAVING. 桌子看起来像这样 | id | xml | 和XML类似的东西 xml info name="Foo" data .../ /infoxml 我想获取所有的id,其中@name属性与值匹配. 我已经能够做
我有一个带有一个
XML列的表.我想过滤出
XML中的特定属性与字符串相匹配的行,基本上是做一个WHERE或HAVING.
桌子看起来像这样 | id | xml | 和XML类似的东西 <xml> <info name="Foo"> <data .../> </info> <xml> 我想获取所有的id,其中@name属性与值匹配. 我已经能够做到以下几点: SELECT id,xml.query('data(/xml/info/@name)') as Value FROM Table1 WHERE CAST(xml.query('data(/xml/info/@name)') as varchar(1024)) = @match 但这是非常缓慢的. 必须有一个更好的方法来过滤查询的输出.
找到了.而不是使用query()我应该使用
exist().
我的查询就是 SELECT id,xml.query('data(/xml/info/@name)') as Value FROM Table1 WHERE xml.exist('/xml/info/[@name=sql:variable("@match")]') = 1 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |