Comment puis-je savoir si une variable VARCHAR contient une sous-chaîne?

Je pensais que c’était CONTAINS , mais cela ne fonctionne pas pour moi.

Je cherche à faire ça:

 IF CONTAINS(@ssortingngVar, 'thisssortingng') ... 

Je dois exécuter une select ou une autre, selon que cette variable contient une chaîne et que je ne parviens pas à comprendre comment la faire fonctionner. Tous les exemples que je vois utilisent des colonnes dans le conteneur.

Merci d’avance.

La manière standard de SQL est d’utiliser comme:

 where @ssortingngVar like '%thisssortingng%' 

C’est dans une instruction de requête. Vous pouvez aussi le faire dans TSQL:

 if @ssortingngVar like '%thisssortingng%' 

Au lieu de LIKE (qui fonctionne comme le suggèrent les autres commentateurs), vous pouvez également utiliser CHARINDEX :

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

CONTAINS est pour un champ indexé en texte intégral – sinon, utilisez LIKE

  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.