4

SQL サーバーで XML 列のクエリを実行しようとしていますが、属性値が大文字と小文字を区別しない文字列と一致するレコードを選択したいと考えています。

たとえば、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 を作成するにはどうすればよいですか?

4

1 に答える 1

7

小文字関数 (検索する属性を小文字にする) を使用fn:lower-caseしてから、クエリで小文字を使用していることを確認してください。

SELECT 
MyXmlColumn.value('(/items/item[fn:lower-case(@k)="description"]/@v)[1]', 'nvarchar(max)') as v
FROM [Table]
于 2012-07-04T21:26:32.837 に答える