Je pensais que c'était CONTAINS
, mais ça ne marche pas pour moi.
Je cherche à faire ceci:
IF CONTAINS(@stringVar, 'thisstring')
...
Je dois exécuter un select
ou un autre, selon que cette variable contient ou non une chaîne et je ne vois pas comment le faire fonctionner. Tous les exemples que je vois utilisent des colonnes dans le contient.
Merci d'avance.
La méthode SQL standard consiste à utiliser comme suit:
where @stringVar like '%thisstring%'
C'est dans une instruction de requête. Vous pouvez également le faire dans TSQL:
if @stringVar like '%thisstring%'
Au lieu de LIKE
(qui fonctionne comme le suggèrent d’autres commentateurs), vous pouvez également utiliser CHARINDEX
:
declare @full varchar(100) = 'abcdefg'
declare @find varchar(100) = 'cde'
if (charindex(@find, @full) > 0)
print 'exists'
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.
CONTAINS
est destiné à un champ indexé de texte intégral - sinon, utilisez LIKE