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

 

S’applique à : Azure SQL Database, SQL Server (starting with 2008)

CETTE RUBRIQUE S’APPLIQUE À :ouiSQL Server (à partir de la version 2008)ouiAzure SQL DatabasenonAzure SQL Data WarehousenonParallel Data Warehouse

Utilisez le caractère de soulignement _ pour faire correspondre tout caractère unique dans une opération de comparaison de chaînes qui inclut des critères spéciaux, tels que LIKE et PATINDEX.

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. Le caractère de soulignement Spécifie que le deuxième caractère du nom peut être n’importe quelle lettre. Le model et msdb bases de données répondent à ces critères. Le master n’est pas le cas de base de données.

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

Voici l'ensemble des résultats.

name
-----
model
msdb

Vous pouvez avoir des bases de données qui répondent à ces critères.

Vous pouvez utiliser plusieurs traits de soulignement pour représenter plusieurs caractères. Modification de la LIKE critères pour inclure deux traits de soulignement 'm__% inclut la base de données master dans le résultat.

B : exemple plus complexe

Cet exemple utilise l'opérateur _ pour rechercher toutes les personnes de la table Person qui ont un prénom en trois lettres se terminant par an.

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

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.

SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';

Le trait de soulignement en troisième position de caractère est considérée comme un caractère générique et ne filtre pas pour seulement les entités commençant par les lettres db_. Pour échapper le caractère de soulignement entre crochets [_].

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

Maintenant la dbo utilisateur est exclu.
Voici l'ensemble des résultats.

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

COMME ( ; Transact-SQL ) ;
La fonction PATINDEX ( ; Transact-SQL ) ;
% (Caractère générique - caractères à comparer)
[ ; ] ; (Caractère générique - caractères à comparer)
[ ; ^ ] ; (Caractère générique - caractères à ne pas faire correspondre)

Ajouts de la communauté

AJOUTER
Afficher: