_ (Caractère générique - recherche de correspondance d'un seul caractère) (Transact-SQL)
S’applique à : SQL ServerAzure SQL Database Azure SQL Managed Instance
Utilisez le trait de soulignement _ pour recherche un caractère unique dans une opération de comparaison de chaînes qui inclut des critères spéciaux, comme LIKE
et PATINDEX
.
Exemples
A. Exemple simple
L’exemple suivant retourne tous les noms de base de données qui commencent par la lettre m
et dont la troisième lettre est d
. Le caractère de soulignement indique que le deuxième caractère du nom peut être n’importe quelle lettre. Les bases de données model
et msdb
répondent à ces critères. La base de données master
n’y répond pas.
SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';
Voici le jeu de résultats obtenu.
name
-----
model
msdb
Vous pouvez avoir d’autres bases de données qui répondent à ces critères.
Vous pouvez utiliser plusieurs traits de soulignement pour représenter plusieurs caractères. Si vous modifiez les critères LIKE
de sorte à inclure deux traits de soulignement 'm__%
, alors la base de données MASTER est incluse dans les résultats.
B. Exemple plus complexe
Cet exemple utilise l’opérateur _ pour rechercher toutes les personnes figurant dans la table Person
qui ont un prénom en trois lettres se terminant par an
.
-- USE AdventureWorks2022;
SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;
C. Échappement du caractère de soulignement
L’exemple suivant retourne les noms des rôles de base de données fixes comme db_owner
et db_ddladmin
, mais elle retourne également l’utilisateur dbo
.
SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';
Le trait de soulignement en troisième position de caractère est considéré comme un caractère générique et ne permet pas de filtrer seulement les principaux qui commencent par les lettres db_
. Pour échapper le trait de soulignement, placez-le entre crochets [_]
.
SELECT name FROM sys.database_principals
WHERE name LIKE 'db[_]%';
Maintenant, l’utilisateur dbo
est exclu.
Voici le jeu de résultats obtenu.
name
-------------
db_owner
db_accessadmin
db_securityadmin
...
Voir aussi
LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (Caractère générique - recherche de correspondance de caractère(s))
[ ] (Caractère générique - recherche de correspondance de caractère(s))
[^] (Caractère générique - caractères à ne pas faire correspondre)
Commentaires
https://aka.ms/ContentUserFeedback.
Prochainement : Tout au long de l'année 2024, nous supprimerons progressivement les GitHub Issues en tant que mécanisme de retour d'information pour le contenu et nous les remplacerons par un nouveau système de retour d'information. Pour plus d’informations, voir:Soumettre et afficher des commentaires pour