web-dev-qa-db-ja.com

文字列に別の文字列が含まれていないか確認してください

T-SQLでは、文字列に別の文字列が含まれていないかどうかをどのように確認しますか?

「Oranges Apples」になり得るnvarcharがあります。

たとえば、列does n'tに「Apples」が含まれる場合、更新を行います。

これをどのように行うことができますか?

56
Dofs
WHERE NOT (someColumn LIKE '%Apples%')
82
Daniel A. White

または、これを使用できます:

WHERE CHARINDEX(N'Apples', someColumn) = 0

どれがより良いパフォーマンスかわからない-あなたはそれをテストする必要があります! :-)

マーク

更新:パフォーマンスは他のソリューションとほぼ同等であるようです(someColumn NOT LIKE '%Apples%')-それは本当にあなたの個人的な好みの問題です。

24
marc_s

これをWHERE条件として使用します

WHERE CHARINDEX('Apples', column) = 0 
10
dutch

あなたが得た答えは、比較する静的なテキストを想定しています。別の列と比較したい場合(たとえば、2つのテーブルを結合していて、あるテーブルの列が別のテーブルの列の一部であるテーブルを見つけたい場合)、これを行うことができます

WHERE NOT (someColumn LIKE '%' || someOtherColumn || '%')
7
Greg Dougherty