[ ] (carattere jolly) (Transact-SQL)

Si applica a: SQL Server Azure SQL DatabaseIstanza gestita di SQL di Azure Azure SynapseAnalytics AnalyticsPlatform System (PDW)

Rileva la corrispondenza con uno dei caratteri inclusi nell'intervallo o set racchiuso tra parentesi quadre [ ]. È possibile usare i caratteri jolly nei confronti di stringhe che prevedono l'uso di criteri di ricerca, ad esempio LIKE e PATINDEX.

Esempi

A. Esempio semplice

L'esempio seguente restituisce i nomi che iniziano con la lettera m. [n-z] specifica che la seconda lettera deve essere inclusa nell'intervallo tra n e z. Il carattere jolly percentuale % indica che il terzo carattere può essere qualsiasi o nessuno. I database model e msdb soddisfano questi criteri. Il database master non soddisfa i criteri e viene escluso dal set di risultati.

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

Questo è il set di risultati.

name
-----
model
msdb

È possibile che siano installati altri database che soddisfano i criteri.

B. Esempio più complesso

L'esempio seguente usa l'operatore [] per trovare gli ID e i nomi di tutti i dipendenti di Adventure Works il cui indirizzo include un codice postale a quattro cifre.

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

Questo è il set di risultati.

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

C: Uso di un set che combina intervalli e caratteri singoli

Un set di caratteri jolly può includere sia caratteri singoli sia intervalli. Nell'esempio seguente viene usato l'operatore [] per trovare una stringa che inizia con un numero o una serie di caratteri speciali.

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

Questo è il set di risultati.

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

Vedere anche

LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (carattere jolly) (Transact-SQL)
[^] (carattere jolly) (Transact-SQL)
_ (carattere jolly per corrispondenze di singoli caratteri) (Transact-SQL)