Je veux utiliser contient
avec la recherche d'un mot qui a un seul espace à gauche et à droite. Mais cela ne fonctionne pas ..
SELECT * FROM mytable WHERE Contains(name, ' Hertz ');
Toute aide est appréciée ..
8 Réponses :
Essayez ceci:
SELECT * FROM mytable WHERE name like ' % '
Si Hertz n'est qu'un exemple, vous pouvez utiliser:
SELECT * FROM mytable WHERE name=' Hertz '
qui renverra tous les noms avec un espace en première et dernière position
Essayez comme ci-dessous.
SELECT * FROM mytable WHERE name LIKE '% Hertz %'
Vous pouvez essayer ceci
SELECT * FROM mytable WHERE name Like '% Hertz %'
Vous pouvez LTRIM RTRIM la colonne et pouvez obtenir les valeurs.
select * from #temp where name like ' %' select * from #temp where name like '% '
Si vous voulez rechercher s'il y a de l'espace au début ou à la fin, utilisez la requête ci-dessous.
create table #temp ( name varchar(50) ) insert into #temp values(' hertz') insert into #temp values('hertz ') insert into #temp values('hertzx') insert into #temp values('hertz') select * from #temp where LTRIM(RTRIM(name)) like '%hertz%'
Pour rechercher avec des espaces inclus, vous devez mettre votre expression entre guillemets, comme:
SELECT * FROM mytable WHERE name LIKE '% Hertz %');
Bien sûr, cela peut également être écrit avec LIKE (bien que ce soit moins efficace lors de avec de grands ensembles de données):
SELECT * FROM mytable WHERE CONTAINS(name, '" Hertz "');
Si vous utilisez l’opérateur like , vous n’avez pas besoin de donner des espaces entre ceux-ci comme ci-dessous
select * from mytable where name like '_%hertz%_'
Et aussi si vous voulez que les données aient des espaces, vous peut utiliser comme ci-dessous
select * from mytable where name like '%her%'
Si nous utilisons trait de soulignement , il ignorera l'élément de position particulier et recherchera les données.
p >
Essayez ceci
Select * from mytable where replace(name,' ','')='Hertz'
Vous pouvez également utiliser ltrim
& rtrim
pour supprimer les espaces au moment de l'exécution afin qu'ils correspondent aux valeurs du nom.
/ p>
Vous pouvez essayer ceci
SELECT a.name FROM mytable a WHERE a.name like' % '
OU
SELECT a.name FROM mytable a WHERE a.name like ' %% '
Vous pouvez trouver la démo en direct Démo ici
Je ne suis pas sûr que vous puissiez utiliser
CONTAINS
pour rechercher des caractères de fin. Vous pouvez rechercher des préfixes avec le caractère générique * (CONTAINS (nom, '"*" Hertz')
). Vous devrez peut-être ajouter une clause supplémentaire pour valider que le dernier caractère est un espace.À toutes les personnes qui répondent, l'OP demande
CONTAINS
qui utilise un index de texte intégral et se comporte différemment deLIKE
.Vous pouvez écrire la condition where comme -
WHERE a.name comme '%%'
Vérifiez ma réponse.@Janna, vous pouvez tenter votre chance en publiant sur dba.stackexchange.com