SQL Server 2008 XML属性搜索区分大小写

时间:2011-08-29 15:32:53

标签: sql xml

我将用户首选项存储在XML列中,如下所示:

<tags>
    <user> 
        <tag name="AB"/>
    </user>
</tags/>

当我使用下面的查询时,

select * 
from company 
where CAST(tags.query('tags/user/tag[fn:contains(@name,"Ab")]') as varchar(2000) ) <> ''  

它不会返回任何结果,属性值与xml列中的属性值不同。

有关按属性名称进行搜索不区分大小写的任何想法吗?

由于

1 个答案:

答案 0 :(得分:1)

使用SQL Server 2008,您可以使用小写和大写的函数,如下所示:

select * from company where CAST(tags.query('tags/user/tag[fn:contains(lower-case(@name),"ab")]') as varchar(2000) ) <>''

见:

New XQuery functions introduced in SQL Server 2008: upper-case() and lower-case()

lower-case Function (XQuery) (MSDN)