_ (Platzhalterzeichen - einzelnes zu suchendes Zeichen) (Transact-SQL)
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL Managed Instance SQL-Datenbank in Microsoft Fabric
Verwenden Sie den Unterstrich _ zum Abgleichen eines beliebigen einzelnen Zeichen bei einem Zeichenfolgenvergleich, der einen Mustervergleich wie LIKE
oder PATINDEX
umfasst.
Beispiele
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
Sie verfügen möglicherweise über zusätzliche Datenbanken, die diese Kriterien erfüllen.
Mehrere Unterstriche können mehrere Zeichen darstellen. Wenn Sie die LIKE
-Kriterien ändern, um zwei Unterstriche einzuschließen, fügt 'm__%
dem Ergebnis die Masterdatenbank hinzu.
B: Komplexeres Beispiel
Im folgenden Beispiel wird der Operator _ zum Suchen aller Personen in der Person
-Tabelle verwendet, die über einen aus drei Buchstaben bestehenden Vornamen verfügen, der auf an
endet.
-- USE AdventureWorks2022;
SELECT FirstName, LastName
FROM Person.Person
WHERE FirstName LIKE '_an'
ORDER BY FirstName;
C: Versehen von Unterstrichen mit Escapezeichen
Im folgenden Beispiel werden die Namen von festen Datenbankrollen wie db_owner
und db_ddladmin
zurückgegeben, aber auch der Benutzer dbo
.
SELECT name FROM sys.database_principals
WHERE name LIKE 'db_%';
Der Unterstrich an der dritten Zeichenposition wird als Platzhalter verwendet und filtert nicht nur nach Prinzipalen, die mit den Buchstaben db_
beginnen. Setzen Sie den Unterstrich in Klammern ([_]
), um ihn mit dem Escapezeichen zu versehen.
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
...
Weitere Informationen
LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (Platzhalterzeichen – zu suchende(s) Zeichen)
[ ] (Platzhalterzeichen – zu suchende[s] Zeichen)
[^] (Platzhalterzeichen – nicht zu suchende(s) Zeichen)