Les caractères spéciaux peuvent parfois poser un défi lorsqu’il s’agit de faire correspondre des motifs dans SQL Server. Ces caractères peuvent représenter différentes valeurs à différents moments, ce qui rend difficile la recherche de motifs spécifiques. Dans cet article de blog, nous explorerons quelques astuces et techniques pour interroger les caractères spéciaux à l’aide de caractères génériques dans SQL Server.
Recherche de signes % littéraux avec des caractères génériques
Un caractère spécial courant est le signe de pourcentage (%), qui est souvent utilisé comme caractère générique dans SQL Server. Cependant, si vous souhaitez rechercher un signe de pourcentage littéral avec des caractères génériques de chaque côté, vous devez utiliser une approche différente.
Au lieu d’utiliser le signe de pourcentage comme caractère générique, vous pouvez l’encadrer entre crochets pour le traiter comme un symbole de pourcentage littéral. Par exemple, si vous souhaitez trouver des subventions avec un signe de pourcentage dans leur nom, vous pouvez utiliser la requête suivante:
SELECT * FROM [GRANT] WHERE GrantName LIKE '%[%]%'
Cette requête ne renverra que les subventions qui ont un signe de pourcentage dans leur nom.
Recherche de signes _ littéraux avec des caractères génériques
Un autre caractère spécial qui peut être difficile à interroger est le tiret bas (_), qui est également un caractère générique dans SQL Server. Si vous souhaitez trouver des subventions avec un tiret bas comme deuxième lettre dans leur nom, vous pouvez utiliser la requête suivante:
SELECT * FROM [GRANT] WHERE GrantName LIKE '_A%'
Cette requête renverra les subventions où la deuxième lettre est ‘A’ et n’importe quel nombre de caractères suit.
De manière similaire à l’approche utilisée pour le signe de pourcentage, vous pouvez encadrer le tiret bas entre crochets pour le traiter comme un caractère de tiret bas littéral. Par exemple, si vous souhaitez trouver des subventions avec des tirets bas dans leur nom, vous pouvez utiliser la requête suivante:
SELECT * FROM [GRANT] WHERE GrantName LIKE '%[_]%'
Cette requête ne renverra que les subventions qui ont un tiret bas dans leur nom.
Conclusion
L’interrogation des caractères spéciaux avec des caractères génériques dans SQL Server peut être difficile, mais en utilisant des crochets pour traiter les caractères spéciaux comme des symboles littéraux, vous pouvez surmonter ces défis. N’oubliez pas d’encadrer les caractères spéciaux entre crochets pour vous assurer qu’ils sont traités comme des littéraux dans vos requêtes.