_ (Platzhalterzeichen - einzelnes zu suchendes Zeichen) (Transact-SQL)_ (Wildcard - Match One Character) (Transact-SQL)

GILT FÜR: jaSQL Server (ab 2008) jaAzure SQL-DatenbankjaAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server (starting with 2008) yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Verwenden Sie den Unterstrich _ zum Abgleichen eines beliebigen einzelnen Zeichen bei einem Zeichenfolgenvergleich, der einen Mustervergleich wie LIKE oder PATINDEX umfasst.Use the underscore character _ to match any single character in a string comparison operation that involves pattern matching, such as LIKE and PATINDEX.

BeispieleExamples

A: Einfaches BeispielA: Simple example

Das folgende Beispiel gibt alle Datenbanknamen zurück, die mit dem Buchstaben m beginnen und d als dritten Buchstaben haben.The following example returns all database names that begin with the letter m and have the letter d as the third letter. Der Unterstrich gibt an, dass das zweite Zeichen ein beliebiger Buchstabe sein kann.The underscore character specifies that the second character of the name can be any letter. Die Datenbanken model und msdb erfüllen diese Kriterien.The model and msdb databases meet this criteria. Die Datenbank master erfüllt die Kriterien nicht.The master database does not.

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

Im Folgenden finden Sie das Resultset.Here is the result set.

name
-----
model
msdb

Sie verfügen möglicherweise über zusätzliche Datenbanken, die diese Kriterien erfüllen.You may have additional databases that meet this criteria.

Mehrere Unterstriche können mehrere Zeichen darstellen.You can use multiple underscores to represent multiple characters. Wenn Sie die LIKE-Kriterien ändern, um zwei Unterstriche einzuschließen, fügt 'm__% dem Ergebnis die Masterdatenbank hinzu.Changing the LIKE criteria to include two underscores 'm__% includes the master database in the result.

B: Komplexeres BeispielB: More complex example

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.The following example uses the _ operator to find all the people in the Person table, who have a three-letter first name that ends in an.

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

C: Versehen von Unterstrichen mit EscapezeichenC: Escaping the underscore character

Im folgenden Beispiel werden die Namen von festen Datenbankrollen wie db_owner und db_ddladmin zurückgegeben, aber auch der Benutzer dbo.The following example returns the names of the fixed database roles like db_owner and db_ddladmin, but it also returns the dbo user.

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.The underscore in the third character position is taken as a wildcard, and is not filtering for only principals starting with the letters db_. Setzen Sie den Unterstrich in Klammern ([_]), um ihn mit dem Escapezeichen zu versehen.To escape the underscore enclose it in brackets [_].

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

Jetzt wird der Benutzer dbo ausgeschlossen.Now the dbo user is excluded.

Im Folgenden finden Sie das Resultset.Here is the result set.

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

Weitere Informationen finden Sie unterSee Also

LIKE (Transact-SQL) LIKE (Transact-SQL)
PATINDEX (Transact-SQL) PATINDEX (Transact-SQL)
% (Platzhalterzeichen – zu suchende(s) Zeichen) % (Wildcard - Character(s) to Match)
[ ] (Wildcard - Character(s) to Match) ([ ] (Platzhalterzeichen – zu suchende[s] Zeichen)) [ ] (Wildcard - Character(s) to Match)
[^] (Wildcard - Character(s) Not to Match) ([^] (Platzhalterzeichen – nicht zu suchende[s] Zeichen))[^] (Wildcard - Character(s) Not to Match)