【发布时间】:2010-04-13 12:10:08
【问题描述】:
是否可以使用 XPath“where”子句运行 SQL 查询,并在比较之前修剪尾随空格?
我有一个 SQL XML 列,其中的 XML 节点具有包含尾随空格的属性。我想找到一个给定的记录,它具有指定的属性值 - 没有尾随空格。
当我尝试时,我得到...
“没有函数'{http://www.w3.org/2004/07/xpath-functions}:normalize-space()'”
我尝试了以下方法(查询 1 有效,查询 2 无效)。这是在 SQL 2005 上。
declare @test table (data xml)
insert into @test values ('<thing xmlns="http://my.org.uk/Things" x="hello " />')
-- query 1
;with xmlnamespaces ('http://my.org.uk/Things' as ns0)
select * from @test where data.exist('ns0:thing[@x="hello "]') != 0
-- query 2
;with xmlnamespaces ('http://my.org.uk/Things' as ns0)
select * from @test where data.exist('ns0:thing[normalize-space(@x)="hello"]') != 0
感谢您的帮助。
【问题讨论】:
-
您使用的是什么 SQL 数据库?甲骨文?微软 SQL? MySql?
标签: sql xpath where-clause