Dela via


[ ] (Jokertecken - tecken att matcha) (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Förhandsversion av Microsoft Fabric

Matchar ett enskilt tecken inom det angivna intervallet eller uppsättningen som anges mellan hakparenteser [ ]. Dessa jokertecken kan användas i strängjämförelser som omfattar mönstermatchning, till exempel LIKE och PATINDEX.

Examples

Kodexemplen i den här artikeln använder AdventureWorks2022- eller AdventureWorksDW2022-exempeldatabasen, som du kan ladda ned från startsidan Microsoft SQL Server Samples och Community Projects.

A. Basic example

I följande exempel returneras namn som börjar med bokstaven m. [n-z] anger att den andra bokstaven måste finnas någonstans i intervallet från n till z. Med jokertecknet % procent tillåts alla eller inga tecken som börjar med det tredje tecknet. Databaserna model och msdb uppfyller det här villkoret. Databasen master uppfyller inte kriterierna och undantas från resultatuppsättningen.

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

Här är resultatet.

name
-----
model
msdb

Du kan ha fler kvalificerade databaser installerade.

B. Mer komplext exempel

I följande exempel används operatorn [] för att hitta ID:erna och namnen på alla Adventure Works-anställda som har adresser med ett fyrsiffrigt postnummer.

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

Här är resultatet.

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

C. Använd en uppsättning som kombinerar intervall och enkla tecken

En jokerteckenuppsättning kan innehålla både enstaka tecken och intervall. I följande exempel används operatorn [] för att hitta en sträng som börjar med ett tal eller en serie specialtecken.

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

Här är resultatet.

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