Dela via


_ (Jokertecken – matcha ett tecken) (Transact-SQL)

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

Använd understreckstecknet _ för att matcha ett enskilt tecken i en strängjämförelseåtgärd 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 alla databasnamn som börjar med bokstaven m och har bokstaven d som den tredje bokstaven. Understreckstecknet anger att namnets andra tecken kan vara valfri bokstav. Databaserna model och msdb uppfyller det här villkoret. Databasen master gör det inte.

SELECT name FROM sys.databases
WHERE name LIKE 'm_d%';

Här är resultatet.

name
-----
model
msdb

Du kan ha ytterligare databaser som uppfyller det här villkoret.

Du kan använda flera understreck för att representera flera tecken. Om du ändrar villkoret LIKE så att det 'm__% innehåller två understreck master ingår databasen i resultatet.

B. Mer komplext exempel

I följande exempel används operatorn _ för att hitta alla personer i Person tabellen, som har ett förnamn med tre bokstäver som slutar i an.

SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;

C. Undvik understreckstecknet

I följande exempel returneras namnen på de fasta databasrollerna som db_owner och db_ddladmin, men det returnerar även dbo-användaren .

SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';

Understrecket i den tredje teckenpositionen tas som ett jokertecken och filtreras inte bara efter huvudnamn som börjar med bokstäverna db_. Om du vill undvika understrecket omger du det inom hakparenteser [_].

SELECT name FROM sys.database_principals
WHERE name LIKE 'db[_]%';

dbo Nu är användaren exkluderad.

Här är resultatet.

name
-------------
db_owner
db_accessadmin
db_securityadmin
...