J'essayais d'écrire une instruction qui utilise la clause WHERE LIKE '% text%', mais je ne reçois pas de résultats lorsque j'essaie d'utiliser un paramètre pour le texte. Par exemple, cela fonctionne:
SELECT Employee WHERE LastName LIKE '%ning%'
Cela renverrait les utilisateurs Flenning, Manning, Ningle, etc. Mais cette affirmation ne:
DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%@LastName%'
Aucun résultat trouvé. Aucune suggestion? Merci d'avance.
CA devrait etre:
...
WHERE LastName LIKE '%' + @LastName + '%';
Au lieu de:
...
WHERE LastName LIKE '%@LastName%'
La bonne réponse est que, parce que le '%'
_ le signe fait partie de votre expression de recherche, il doit faire partie de votre valeur, alors peu importe où vous SET@LastName
(qu’il s’agisse d’un langage de programmation ou de TSQL), vous devez le définir sur '%' + [userinput] + '%'
ou, dans votre exemple:
DECLARE @LastName varchar(max)
SET @LastName = 'ning'
SELECT Employee WHERE LastName LIKE '%' + @LastName + '%'
vous pouvez essayer celui-ci, utilisé (~ ~ ~ ~] concat [~ # ~]
WHERE LastName LIKE Concat('%',@LastName,'%')