0
である私は、このようなXML列内のユーザー設定を保存しますいずれの結果でも、属性値はxml列の場合とは異なる場合があります。SQL Server 2008のXMLの属性検索では大文字と小文字が区別
属性名による検索を大文字と小文字を区別するためのアイデアはありますか?
おかげでSQL Server 2008に
である私は、このようなXML列内のユーザー設定を保存しますいずれの結果でも、属性値はxml列の場合とは異なる場合があります。SQL Server 2008のXMLの属性検索では大文字と小文字が区別
属性名による検索を大文字と小文字を区別するためのアイデアはありますか?
おかげで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()
ありがとう@jdavies。動作していますが、クエリの実行に時間がかかります。私がしようとしていることをする良い方法はありますか? – FullMetal5000
あなたの質問には何も問題はありません(しかし、私は専門家ではありません)。あなたの会社のテーブルは非常に大きいですか?テーブルから他のクエリやシンプルな選択に時間がかかりますか?おそらく、[XMLデータ型列のインデックス](http://msdn.microsoft.com/en-us/library/ms191497.aspx)のタグ列のインデックスを調べることができます。 – jdavies
@ FullMetal5000 - キャストとクエリの代わりに存在を使用しようとします。 'どこのtags.exist( 'tags/user/tag [fn:contains(小文字(@name)、" ab ")]')= 1' –