Comment puis-je échapper au caractère de soulignement?
J'écris quelque chose comme la clause where suivante et je veux pouvoir trouver des entrées réelles avec _d à la fin.
Where Username Like '%_d'
sql-server
GateKiller
la source
la source
Évidemment, la solution @Lasse a raison, mais il existe une autre façon de résoudre votre problème: l'opérateur T-SQL
LIKE
définit la clause ESCAPE facultative , qui vous permet de déclarer un caractère qui échappera au caractère suivant dans le modèle.Pour votre cas, les clauses WHERE suivantes sont équivalentes:
la source
ESCAPE
clause fait partie de la norme SQL et fonctionnera sur n'importe quel SGBD, pas seulement sur SQL Server.Ces solutions ont tout à fait du sens. Malheureusement, aucun n'a fonctionné pour moi comme prévu. Au lieu d'essayer de m'embêter avec ça, je suis allé avec un travail autour:
la source
Cela a fonctionné pour moi, utilisez simplement l'évasion
'%\_%'
la source
Aucun de ceux-ci n'a fonctionné pour moi dans SSIS v18.0, donc je ferais quelque chose comme ceci:
WHERE CHARINDEX('_', thingyoursearching) < 1
.. où j'essaie d'ignorer les chaînes avec un soulignement en eux. Si vous voulez trouver des choses qui ont un trait de soulignement, il suffit de le retourner:
WHERE CHARINDEX('_', thingyoursearching) > 0
la source