2012-07-04 29 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] 
相關問題