Partager via


[ ] (Caractère générique - recherche de correspondance de caractère(s)) (Transact-SQL)

S’applique à : SQL Server Base de données Azure SQL Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Point de terminaison d'analyse SQL dans Microsoft Fabric Entrepôt dans Microsoft Fabric Base de données SQL dans 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)