Delen via


[] (Jokerteken - tekens die moeten worden vergeleken) (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric Preview

Komt overeen met een willekeurig teken binnen het opgegeven bereik of een set die tussen vierkante haken [ ]is opgegeven. Deze jokertekens kunnen worden gebruikt in tekenreeksvergelijkingen die betrekking hebben op patroonvergelijkingen, zoals LIKE en PATINDEX.

Examples

De codevoorbeelden in dit artikel gebruiken de AdventureWorks2022 of AdventureWorksDW2022 voorbeelddatabase die u kunt downloaden van de startpagina van Microsoft SQL Server Samples en Community Projects .

A. Basic example

In het volgende voorbeeld worden namen geretourneerd die beginnen met de letter m. [n-z] geeft aan dat de tweede letter ergens in het bereik van n tot z. Met het jokerteken % procent kunnen alle of geen tekens worden toegestaan die beginnen met het derde teken. De model en msdb databases voldoen aan deze criteria. De master database voldoet niet aan de criteria en wordt uitgesloten van de resultatenset.

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

Hier is het resultatenoverzicht.

name
-----
model
msdb

Mogelijk hebt u meer in aanmerking komende databases geïnstalleerd.

B. Complexer voorbeeld

In het volgende voorbeeld wordt de operator [] gebruikt om de id's en namen te vinden van alle werknemers van Adventure Works die adressen hebben met een postcode van vier cijfers.

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

Hier is het resultatenoverzicht.

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

C. Een set gebruiken waarin bereiken en enkele tekens worden gecombineerd

Een jokertekenset kan zowel enkele tekens als bereiken bevatten. In het volgende voorbeeld wordt de operator [] gebruikt om een tekenreeks te vinden die begint met een getal of een reeks speciale tekens.

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

Hier is het resultatenoverzicht.

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