[] (coringa - personagens correspondentes) (Transact-SQL)

Aplica-se a:SQL ServerBase de Dados SQL do AzureAzure SQL Managed InstanceAzure Synapse AnalyticsEndpoint de análise SQL no Microsoft FabricArmazém no Microsoft FabricBase de dados SQL no Microsoft Fabric

Corresponde a qualquer carácter dentro do intervalo ou conjunto especificado entre parênteses ([ e ]). Esses caracteres curinga podem ser usados em comparações de cadeia de caracteres que envolvem correspondência de padrões, como LIKE e PATINDEX.

Examples

Os exemplos de código neste artigo utilizam a AdventureWorks2025 base de dados de exemplos ORAdventureWorksDW2025, que pode descarregar do repositório GitHub do Azure Data SQL Samples Repository.

A. Exemplo básico

O exemplo a seguir retorna nomes que começam com a letra m. [n-z] especifica que a segunda letra deve estar em algum lugar no intervalo de n até z. O curinga % de porcentagem permite qualquer ou nenhum caractere começando com o terceiro caractere. As model bases de dados e msdb cumprem estes critérios. O master banco de dados não atende aos critérios e é excluído do conjunto de resultados.

SELECT name FROM sys.databases
WHERE name LIKE 'm[n-z]%';

Aqui está o conjunto de resultados.

name
-----
model
msdb

Você pode ter mais bancos de dados qualificados instalados.

B. Exemplo mais complexo

O exemplo seguinte utiliza o [] operador para encontrar os IDs e nomes de todos os funcionários da Adventure Works que tenham moradas com código postal de quatro dígitos.

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]';

Aqui está o conjunto de resultados.

EmployeeID      FirstName      LastName      PostalCode
----------      ---------      ---------     ----------
290             Lynn           Tsoflias      3000

C. Usar um conjunto que combine intervalos e caracteres únicos

Um conjunto de curingas pode incluir caracteres únicos e intervalos. O exemplo seguinte usa o [] operador para encontrar uma cadeia que começa com um número ou uma série de caracteres especiais.

SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id
FROM sys.columns
WHERE name LIKE '[0-9!@#$.,;_]%';

Aqui está o conjunto de resultados.

object_id     object_name                          name    column_id
---------     -----------                         ----  ---------
615673241     vSalesPersonSalesByFiscalYears      2002    5
615673241     vSalesPersonSalesByFiscalYears      2003    6
615673241     vSalesPersonSalesByFiscalYears      2004    7
1591676718    JunkTable                           _xyz  1