2011-08-29 1 views

答えて

1

あなたはそうのような小文字と大文字の機能を利用することができます:

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()

lower-case Function (XQuery) (MSDN)

+0

ありがとう@jdavies。動作していますが、クエリの実行に時間がかかります。私がしようとしていることをする良い方法はありますか? – FullMetal5000

+0

あなたの質問には何も問題はありません(しかし、私は専門家ではありません)。あなたの会社のテーブルは非常に大きいですか?テーブルから他のクエリやシンプルな選択に時間がかかりますか?おそらく、[XMLデータ型列のインデックス](http://msdn.microsoft.com/en-us/library/ms191497.aspx)のタグ列のインデックスを調べることができます。 – jdavies

+0

@ FullMetal5000 - キャストとクエリの代わりに存在を使用しようとします。 'どこのtags.exist( 'tags/user/tag [fn:contains(小文字(@name)、" ab ")]')= 1' –

関連する問題