Freigeben über


_ (Wildcard - übereinstimmung mit einem Zeichen) (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzSQL-Datenbank in Microsoft Fabric

Verwenden Sie das Unterstrichzeichen _ , um ein beliebiges einzelnes Zeichen in einem Zeichenfolgenvergleichsvorgang abzugleichen, der Mustervergleiche umfasst, z LIKE . B. und PATINDEX.

Examples

Die Codebeispiele in diesem Artikel verwenden die AdventureWorks2025- oder AdventureWorksDW2025 Beispieldatenbank, die Sie von der Microsoft SQL Server Samples and Community Projects Homepage herunterladen können.

A. Einfaches Beispiel

Das folgende Beispiel gibt alle Datenbanknamen zurück, die mit dem Buchstaben m beginnen und d als dritten Buchstaben haben. Der Unterstrich gibt an, dass das zweite Zeichen ein beliebiger Buchstabe sein kann. Die Datenbanken model und msdb erfüllen diese Kriterien. Die Datenbank master erfüllt die Kriterien nicht.

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

Hier sehen Sie das Ergebnis.

name
-----
model
msdb

Möglicherweise verfügen Sie über zusätzliche Datenbanken, die diesen Kriterien entsprechen.

Mehrere Unterstriche können mehrere Zeichen darstellen. Das Ändern der LIKE Kriterien, um zwei Unterstriche einzuschließen, 'm__% enthält die master Datenbank im Ergebnis.

B. Komplexeres Beispiel

Im folgenden Beispiel wird der _ Operator verwendet, um alle Personen in der Person Tabelle zu finden, die einen drei buchstabenigen Vornamen haben, der in an.

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

C. Escapen des Unterstrichszeichens

Im folgenden Beispiel werden die Namen der festen Datenbankrollen wie db_owner und db_ddladmin zurückgegeben, aber auch der dbo-Benutzer wird zurückgegeben.

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

Der Unterstrich in der dritten Zeichenposition wird als Platzhalter verwendet und filtert nicht nur nach Prinzipale, die mit den Buchstaben db_beginnen. Um den Unterstrich zu escapeen, schließen Sie ihn in eckige Klammern [_]ein.

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

Jetzt wird der Benutzer dbo ausgeschlossen.

Hier sehen Sie das Ergebnis.

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