Rechercher des lignes avec des caractères spéciaux dans SQL Server

Rechercher des lignes avec des caractères spéciaux dans SQL Server
Rechercher des lignes avec des caractères spéciaux dans SQL Server

Vidéo: Rechercher des lignes avec des caractères spéciaux dans SQL Server

Vidéo: Rechercher des lignes avec des caractères spéciaux dans SQL Server
Vidéo: Tutoriel - Accélérer l'ouverture des applications Windows 8 - YouTube 2024, Avril
Anonim

Lors de la résolution d’un problème de programmation aujourd’hui, j’ai constaté qu’il était impossible d’utiliser une recherche LIKE pour les colonnes de chaîne contenant des caractères spéciaux tels que% ou _ sans utiliser une syntaxe spéciale. La résolution du problème n'a pris que quelques minutes, mais la syntaxe est toujours plus facile à mémoriser si vous écrivez à ce sujet.

Donc oui, ce poste est uniquement pour mon bénéfice. Espérons que cela aidera aussi quelqu'un d'autre.

Supposons que vous souhaitiez rechercher les champs contenant le texte «100%». Vous devez donc regrouper cette requête:

SELECT * FROM tablename WHERE fieldname LIKE ‘%100%%’

Au lieu de ce que vous vouliez, vous obtiendrez toutes les lignes contenant «100» ainsi que les lignes contenant «100%».

Le problème ici est que SQL Server utilise le signe de pourcentage, le trait de soulignement et les crochets comme caractères spéciaux. Vous ne pouvez simplement pas les utiliser en tant que caractère brut dans une requête LIKE sans les échapper.

Support carré évasion

Vous pouvez entourer le% ou le _ avec des crochets pour indiquer à SQL Server que le caractère à l'intérieur est un caractère normal.

SELECT * FROM tablename WHERE fieldname LIKE ‘%100[%]%’

Syntaxe ESCAPE T-SQL

Vous pouvez également ajouter l'opérateur ESCAPE à votre requête et ajouter un caractère avant la valeur à échapper.

SELECT * FROM tablename WHERE fieldname LIKE ‘%100\%%’ ESCAPE ‘’

La partie "" ESCAPE de la requête indique au moteur SQL d’interpréter le caractère après le comme un caractère littéral au lieu d’un caractère générique.

Personnellement, la deuxième méthode est plus facile à gérer et vous pouvez également l’utiliser pour échapper à un crochet.

Conseillé: