(Caractère générique - recherche de correspondance d'un seul caractère) (Transact-SQL) (Wildcard - Match One Character) (Transact-SQL)

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabasenonAzure SQL Data Warehouse nonParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Utilisez le caractère de soulignement pour correspondre à n’importe quel caractère unique dans une opération de comparaison de chaînes qui inclut des critères spéciaux, tels que LIKE et PATINDEX.Use the underscore character to match any single character in a string comparison operation that involves pattern matching, such as LIKE and PATINDEX.

ExemplesExamples

R : exemple simple deA: Simple example

L’exemple suivant retourne tous les noms qui commencent par la lettre de la base de données m et avoir la lettre d la troisième lettre.The following example returns all database names that begin with the letter m and have the letter d as the third letter. Le caractère de soulignement Spécifie que le deuxième caractère du nom peut être n’importe quelle lettre.The underscore character specifies that the second character of the name can be any letter. Le model et msdb bases de données répondent à ces critères.The model and msdb databases meet this criteria. Le master n’est pas le cas de base de données.The master database does not.

SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';

Voici l'ensemble des résultats.Here is the result set.

name
-----
model
msdb

Vous pouvez avoir des bases de données supplémentaires qui répondent à ces critères.You may have additional databases that meet this criteria.

Vous pouvez utiliser plusieurs traits de soulignement pour représenter plusieurs caractères.You can use multiple underscores to represent multiple characters. Modification de la LIKE critères pour inclure les deux traits de soulignement 'm__% inclut la base de données master dans le résultat.Changing the LIKE criteria to include two underscores 'm__% includes the master database in the result.

B : exemple plus complexe.B: More complex example

L’exemple suivant utilise l’opérateur pour rechercher tous les habitants de la Person table, qui ont un prénom de trois lettres se terminant par an.The following example uses the operator to find all the people in the Person table, who have a three-letter first name that ends in an.

-- USE AdventureWorks2012

SELECT FirstName, LastName  
FROM Person.Person  
WHERE FirstName LIKE '_an'  
ORDER BY FirstName;  

C: échappement le caractère de soulignementC: Escaping the underscore character

L’exemple suivant retourne les noms des rôles de base de données fixe comme db_owner et db_ddladmin, mais elle retourne également la dbo utilisateur.The following example returns the names of the fixed database roles like db_owner and db_ddladmin, but it also returns the dbo user.

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 n’est pas le filtrage pour seulement les entités en commençant par les lettres db_.The underscore in the third character position is taken as a wildcard, and is not filtering for only principals starting with the letters db_. Pour échapper le caractère de soulignement entre crochets [_].To escape the underscore enclose it in brackets [_].

SELECT name FROM sys.database_principals
WHERE name LIKE 'db[_]%';

Maintenant le dbo utilisateur est exclu.Now the dbo user is excluded.

Voici l'ensemble des résultats.Here is the result set.

name
-------------
db_owner
db_accessadmin
db_securityadmin
...

Voir aussiSee Also

COMME ( Transact-SQL ) LIKE (Transact-SQL)
La fonction PATINDEX ( Transact-SQL ) PATINDEX (Transact-SQL)
% (Caractère générique - caractères à comparer) % (Wildcard - Character(s) to Match)
[ ] (Caractère générique - caractères à comparer) [ ] (Wildcard - Character(s) to Match)
[ ^ ] (Caractère générique - caractères à ne pas faire correspondre)[^] (Wildcard - Character(s) Not to Match)