web-dev-qa-db-ja.com

VARCHAR変数にサブストリングが含まれているかどうかを確認するにはどうすればよいですか?

私はそれがCONTAINSだと思ったが、それは私には役に立たない。

私はこれをやっています:

IF CONTAINS(@stringVar, 'thisstring')
   ...

変数に文字列が含まれているかどうかに応じて、1つのselectを実行する必要があり、それを機能させる方法がわかりません。私が見ているすべての例は、コンテナ内の列を使用しています。

前もって感謝します。

56
Yatrix

標準的なSQLの方法は、次のように使用することです。

where @stringVar like '%thisstring%'

それはクエリ文にあります。 TSQLでこれを行うこともできます。

if @stringVar like '%thisstring%'
74
Gordon Linoff

LIKE(他のコメンターが示唆したように動作します)の代わりに、代わりにCHARINDEXを使用できます:

declare @full varchar(100) = 'abcdefg'
declare @find varchar(100) = 'cde'
if (charindex(@find, @full) > 0)
    print 'exists'
27
CD Jorgensen
    IF CHARINDEX('TextToSearch',@TextWhereISearch, 0) > 0 => TEXT EXISTS

    IF PATINDEX('TextToSearch', @TextWhereISearch) > 0 => TEXT EXISTS

    Additionally we can also use LIKE but I usually don't use LIKE.
7
Sanjeev Singh

CONTAINSは全文索引付きフィールド用です-そうでない場合は、LIKEを使用します

7
podiluska