Partager via


[ ] (Caractères génériques - caractères à mettre en correspondance) (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison d’analytique SQL dans Microsoft FabricEntrepôt dans Microsoft FabricBase 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.

Examples

Les exemples de code de cet article utilisent les bases de données d'exemple AdventureWorks2025 ou AdventureWorksDW2025, que vous pouvez télécharger à partir de la page d'accueil Microsoft SQL Server Samples and Community Projects.

A. Exemple de base

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 un ou plusieurs caractères commençant par le 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 plus de bases de données éligibles installées.

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.

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. Utiliser 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