Dela via


[^] (Jokertecken – tecken som inte ska matchas) (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Förhandsversion av Microsoft Fabric

Matchar ett enskilt tecken som inte ligger inom intervallet eller angivet mellan hakparenteserna [^]. 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.

S: Grundläggande exempel

I följande exempel används operatorn [^] för att hitta de fem främsta personerna i Contact tabellen som har ett förnamn som börjar med Al och har en tredje bokstav som inte är bokstaven a.

SELECT TOP 5 FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE 'Al[^a]%';

Här är resultatet.

FirstName     LastName
---------     --------
Alex          Adams
Alexandra     Adams
Allison       Adams
Alisha        Alan
Alexandra     Alexander

B: Söka efter teckenintervall

En jokerteckenuppsättning kan innehålla enstaka tecken eller teckenintervall, samt kombinationer av tecken och intervall. I följande exempel används operatorn [^] för att hitta en sträng som inte börjar med en bokstav eller siffra.

SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id
FROM sys.columns
WHERE name LIKE '[^0-9A-z]%';

Här är resultatet.

object_id     object_name   name    column_id
---------     -----------   ----    ---------
1591676718    JunkTable     _xyz    1