[ ] (Curinga – caracteres para correspondência) (Transact-SQL)
Aplica-se a: SQL Server Banco de Dados SQL do Azure Instância Gerenciada de SQL do Azure Azure Synapse Analytics PDW (Analytics Platform System) Ponto de extremidade de análise do SQL Warehouse no Microsoft Fabric
Encontra a correspondência de qualquer caractere único dentro do intervalo ou conjunto especificado entre colchetes [ ]
. Esses caracteres curinga podem ser usados em comparações de cadeias de caracteres que envolvem a correspondência de padrões, como LIKE
e PATINDEX
.
Exemplos
A: Exemplo simples
O exemplo a seguir retorna os nomes dos que começam com a letra m
. [n-z]
especifica que a segunda letra deve estar em algum lugar no intervalo de n
a z
. O caractere curinga %
percentual permite caracteres ou nenhum caractere que começa com o caractere 3. Os bancos de dados model
e msdb
atendem a esse critério. O banco de dados master
não atende ao critério e é excluído do conjunto de resultados.
SELECT name FROM sys.databases
WHERE name LIKE 'm[n-z]%';
Veja a seguir o conjunto de resultados.
name
-----
model
msdb
Você pode ter outros bancos de dados qualificados instalados.
B: Exemplo mais complexo
O exemplo a seguir usa o operador [] para encontrar as IDs e os nomes de todos os funcionários da Adventure Works que possuem endereços com um código postal de quatro dígitos.
-- 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]';
Veja a seguir o conjunto de resultados.
EmployeeID FirstName LastName PostalCode
---------- --------- --------- ----------
290 Lynn Tsoflias 3000
C: Uso de um conjunto que combina intervalos e caracteres únicos
Um conjunto de curingas pode incluir caracteres únicos e intervalos. O exemplo a seguir usa o operador [] para localizar uma cadeia de caracteres 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!@#$.,;_]%';
Veja a seguir 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
Confira também
LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (Curinga – caracteres de correspondência) (Transact-SQL)
[^] (Curinga – caracteres que não correspondem a) (Transact-SQL)
_ (Curinga – corresponde a um caractere) (Transact-SQL)