2012-07-04 30 views
3

我试图查询SQL服务器中的XML列,并且我想选择属性值匹配不区分大小写的字符串的记录。如何在xquery中执行不区分大小写的属性选择器

例如,考虑XML列以下值:

<items> 
    <item k="Description" v="hello" /> 
</items> 

现在,我的选择看起来是这样的:

SELECT 
MyXmlColumn.value('(/items/item[@k="Description"]/@v)[1]', 'nvarchar(max)') as v 
FROM Table 

的问题是,“K”的价值属性可以是'描述','描述'或'描述'。

如何编写XQuery以便它执行不区分大小写的匹配?

回答

6

可以使用lower-case functionfn:lower-case(这会让你在小写搜索的属性),然后请确保您的查询使用小写:

SELECT 
MyXmlColumn.value('(/items/item[fn:lower-case(@k)="description"]/@v)[1]', 'nvarchar(max)') as v 
FROM [Table] 
相关问题