[ ] (Caractère générique - recherche de correspondance de caractère(s)) (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in Microsoft Fabric
Recherche la correspondance de chaque caractère, dans la plage ou l’ensemble spécifié entre crochets [ ]
. Ces caractères génériques peuvent être utilisés dans des comparaisons de chaînes qui impliquent des critères spéciaux tels que LIKE
et PATINDEX
.
Exemples
A. Exemple simple
L’exemple suivant retourne les noms qui commencent par la lettre m
. [n-z]
spécifie que la deuxième lettre doit être comprise dans la plage allant de n
à z
. Le caractère générique de pourcentage %
autorise tout caractère ou aucun caractère à partir du troisième caractère. Les bases de données model
et msdb
répondent à ces critères. La base de données master
n’y répond pas et est donc exclue du jeu de résultats.
SELECT name FROM sys.databases
WHERE name LIKE 'm[n-z]%';
Voici le jeu de résultats.
name
-----
model
msdb
Vous avez peut-être d’autres bases de données installées qui satisfont ces critères.
B. Exemple plus complexe
L'exemple suivant utilise l'opérateur [] pour rechercher l'ID et le nom de tous les employés de Adventure Works dont le code postal se compose de quatre chiffres.
-- Uses AdventureWorks
SELECT e.BusinessEntityID, p.FirstName, p.LastName, a.PostalCode
FROM HumanResources.Employee AS e
INNER JOIN Person.Person AS p ON e.BusinessEntityID = p.BusinessEntityID
INNER JOIN Person.BusinessEntityAddress AS ea ON e.BusinessEntityID = ea.BusinessEntityID
INNER JOIN Person.Address AS a ON a.AddressID = ea.AddressID
WHERE a.PostalCode LIKE '[0-9][0-9][0-9][0-9]';
Voici le jeu de résultats.
EmployeeID FirstName LastName PostalCode
---------- --------- --------- ----------
290 Lynn Tsoflias 3000
C. Utilisation d’un jeu qui combine des plages et des caractères uniques
Un jeu de caractères génériques peut inclure à la fois des caractères uniques et des plages. L’exemple suivant utilise l’opérateur [] pour rechercher une chaîne qui commence par un chiffre ou une série de caractères spéciaux.
SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id
FROM sys.columns
WHERE name LIKE '[0-9!@#$.,;_]%';
Voici le jeu de résultats.
object_id object_name name column_id
--------- ----------- ---- ---------
615673241 vSalesPersonSalesByFiscalYears 2002 5
615673241 vSalesPersonSalesByFiscalYears 2003 6
615673241 vSalesPersonSalesByFiscalYears 2004 7
1591676718 JunkTable _xyz 1
Voir aussi
LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (Un ou plusieurs caractères génériques dont la correspondance est recherchée) (Transact-SQL)
[^] (Caractères génériques à ne pas faire correspondre - Transact-SQL)
_ (Caractère générique - recherche de correspondance d'un seul caractère) (Transact-SQL)