我将用户首选项存储在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列中的属性值不同。
有关按属性名称进行搜索不区分大小写的任何想法吗?
由于
答案 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()