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

DIESES THEMA GILT FÜR:jaSQL Server (ab 2008)jaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Verwenden Sie das Unterstrich-Zeichen _ mit jedem beliebigen einzelnes Zeichen in einem Zeichenfolgenvergleich übereinstimmen, den Mustervergleich, z. B. umfasst LIKE und PATINDEX.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 Datenbank-Name mit dem Buchstaben beginnt m und haben den Buchstaben d als dritten Buchstaben.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 des Namens beliebigen Buchstaben kann.The underscore character specifies that the second character of the name can be any letter. Die model und msdb Datenbanken, die diese Kriterien erfüllen.The model and msdb databases meet this criteria. Die master Datenbank nicht vorhanden.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 müssen möglicherweise zusätzliche Datenbanken verbunden werden, die diese Kriterien erfüllen.You may have additional databases that meet this criteria.

Mehrere Unterstriche können Sie mehrere Zeichen darstellen.You can use multiple underscores to represent multiple characters. Ändern der LIKE Kriterien zwei Unterstriche 'm__% schließt den master-Datenbank in das Ergebnis.Changing the LIKE criteria to include two underscores 'm__% includes the master database in the result.

B: Beispiel komplexereB: More complex example

Im folgenden Beispiel wird der _-Operator zum Finden aller Personen in der Person-Tabelle verwendet, die einen aus drei Buchstaben bestehenden Vornamen haben, 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.

-- Uses AdventureWorks  

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

"C:" Escapezeichen UnterstrichC: Escaping the underscore character

Das folgende Beispiel gibt die Namen von festen Datenbankrollen wie db_owner und db_ddladmin, aber sie gibt überdies die dbo Benutzer.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 in der dritten Zeichenposition stammt als Platzhalter, und ist nicht für nur Prinzipale, die beginnend mit den Buchstaben gefiltert db_.The underscore in the third character position is taken as a wildcard, and is not filtering for only principals starting with the letters db_. Escapezeichen für der Unterstrich Einschließung in Klammern [_].To escape the underscore enclose it in brackets [_].

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

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

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

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

Siehe auchSee Also

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