J'ai une chaîne, @mainString = 'CATCH ME IF YOU CAN'
. Je veux vérifier si le mot ME
est à l'intérieur de @mainString
.
Comment vérifier si une chaîne a une sous-chaîne spécifique en SQL?
J'ai une chaîne, @mainString = 'CATCH ME IF YOU CAN'
. Je veux vérifier si le mot ME
est à l'intérieur de @mainString
.
Comment vérifier si une chaîne a une sous-chaîne spécifique en SQL?
CHARINDEX () recherche une sous-chaîne dans une chaîne plus grande et renvoie la position de la correspondance, ou 0 si aucune correspondance n'est trouvée
if CHARINDEX('ME',@mainString) > 0
begin
--do something
end
Edit ou from daniels answer, si vous voulez trouver un mot (et non des sous-composants de mots), votre appel CHARINDEX ressemblerait à ceci:
CHARINDEX(' ME ',' ' + REPLACE(REPLACE(@mainString,',',' '),'.',' ') + ' ')
(Ajouter des appels de remplacement plus récursifs pour toute autre ponctuation pouvant survenir)
Vous pouvez simplement utiliser des caractères génériques dans le prédicat (après IF, WHERE ou ON):
@mainstring LIKE '%' + @substring + '%'
ou dans ce cas précis
' ' + @mainstring + ' ' LIKE '% ME[., ]%'
(Placez les espaces dans la chaîne entre guillemets si vous recherchez le mot entier, ou laissez-les si ME peut faire partie d'un mot plus grand).
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.