Подтвердить что ты не робот

Как я могу определить, содержит ли переменная VARCHAR подстроку?

Я думал, что это было CONTAINS, но это не работает для меня.

Я хочу сделать это:

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

Мне нужно запустить один select или другой, в зависимости от того, содержит ли эта переменная строку, и я не могу понять, как заставить ее работать. Все примеры, которые я вижу, используют столбцы в файле.

Спасибо заранее.

4b9b3361

Ответ 1

Стандартный способ SQL - использовать как:

where @stringVar like '%thisstring%'

Это в запросе. Вы также можете сделать это в TSQL:

if @stringVar like '%thisstring%'

Ответ 2

Вместо LIKE (который работает, как предполагали другие комментаторы), вы также можете использовать CHARINDEX:

declare @full varchar(100) = 'abcdefg'
declare @find varchar(100) = 'cde'
if (charindex(@find, @full) > 0)
    print 'exists'

Ответ 3

CONTAINS для поля с полным текстом. Если нет, используйте LIKE

Ответ 4

    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.