Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Bestimmt, ob ein bestimmtes Zeichen String einem angegebenen Muster entspricht.
Syntax
match [NOT] LIKE pattern [ESCAPE escape]
Argumente
match Ein Entitäts-SQL-Ausdruck, der zu einem String.
pattern Ein Muster, das mit dem angegebenen übereinstimmen Stringsoll.
escape Ein Escapezeichen.
NICHT gibt an, dass das Ergebnis von LIKE negiert werden soll.
Rückgabewert
true wenn das string Muster entspricht; falseandernfalls .
Bemerkungen
Entitäts-SQL-Ausdrücke, die den LIKE-Operator verwenden, werden auf die gleiche Weise ausgewertet wie Ausdrücke, die Gleichheit als Filterkriterien verwenden. Entitäts-SQL-Ausdrücke, die den LIKE-Operator verwenden, können jedoch sowohl Literale als auch Wildcardzeichen enthalten.
In der folgenden Tabelle wird die Syntax des Musters stringbeschrieben.
| Platzhalterzeichen | BESCHREIBUNG | Beispiel |
|---|---|---|
| % | Eines string von null oder mehr Zeichen. |
title like '%computer%' findet alle Titel mit dem Wort "computer" an einer beliebigen Stelle im Titel. |
| _ (Unterstrich) | Ein einzelnes Zeichen. |
firstname like '_ean' findet alle vier buchstabenigen Vornamen, die mit "ean", z. B. Dean oder Sean enden. |
| [ ] | Ein beliebiges einzelnes Zeichen im angegebenen Bereich ([a-f]) oder Satz ([abcdef]). |
lastname like '[C-P]arsen' findet Nachnamen, die mit "arsen" enden und mit jedem einzelnen Zeichen zwischen C und P beginnen, z. B. Carsen oder Larsen. |
| [^] | Ein einzelnes Zeichen, das sich nicht im angegebenen Bereich befindet ([^a-f]) oder satz ([^abcdef]). |
lastname like 'de[^l]%' findet alle Nachnamen, die mit "de" beginnen und nicht "l" als folgenden Buchstaben enthalten. |
Hinweis
Der Entity SQL LIKE-Operator und die ESCAPE-Klausel können nicht auf System.DateTime oder System.Guid Werte angewendet werden.
LIKE unterstützt ASCII-Musterabgleich und Unicode-Musterabgleich. Wenn alle Parameter ASCII-Zeichen sind, wird der ASCII-Musterabgleich ausgeführt. Wenn eines oder mehrere argumente Unicode sind, werden alle Argumente in Unicode konvertiert, und der Unicode-Musterabgleich wird ausgeführt. Wenn Sie Unicode mit LIKE verwenden, sind nachfolgende Leerzeichen von Bedeutung; Bei Nicht-Unicode sind nachfolgende Leerzeichen jedoch nicht signifikant. Die Musterzeichenfolgensyntax von Entity SQL ist identisch mit der von Transact-SQL.
Ein Muster kann normale Zeichen und Platzhalterzeichen einschließen. Während des Musterabgleichs müssen reguläre Zeichen exakt mit den im Zeichen stringangegebenen Zeichen übereinstimmen. Platzhalterzeichen können jedoch mit beliebigen Teilen der Zeichenfolge übereinstimmen. Wenn sie mit Wildcardzeichen verwendet wird, ist der LIKE-Operator flexibler als die Operatoren = und != Zeichenfolgenvergleich.
Hinweis
Sie können anbieterspezifische Erweiterungen verwenden, wenn Sie auf einen bestimmten Anbieter abzielen. Solche Konstrukte können jedoch von anderen Anbietern z. B. anders behandelt werden. SqlServer unterstützt [first-last]- und [^first-last]-Muster, bei denen der erste Wert genau mit einem Zeichen zwischen erster und letzterer übereinstimmt, und letzteres entspricht genau einem Zeichen, das nicht zwischen erster und letzter ist.
Flucht
Mithilfe der ESCAPE-Klausel können Sie nach Zeichenfolgen suchen, die mindestens eins der in der Tabelle im vorherigen Abschnitt beschriebenen Sonderzeichen enthalten. Gehen Sie beispielsweise davon aus, dass mehrere Dokumente das Literal "100%" im Titel enthalten und sie nach allen diesen Dokumenten suchen möchten. Da das Prozentzeichen (%) ein Wildcardzeichen ist, müssen Sie es mithilfe der Entity SQL ESCAPE-Klausel escapen, um die Suche erfolgreich auszuführen. Im Folgenden sehen Sie ein Beispiel für diesen Filter.
"title like '%100!%%' escape '!'"
In diesem Suchausdruck wird das Prozent-Wildcardzeichen (%) unmittelbar nach dem Ausrufezeichen (!) als Literal und nicht als Wildcardzeichen behandelt. Sie können ein beliebiges Zeichen als Escapezeichen mit Ausnahme der Platzhalterzeichen in Entity SQL und der eckigen Klammer ([ ]) verwenden. Im vorherigen Beispiel ist das Ausrufezeichen (!) das Escapezeichen.
Beispiel
Die folgenden beiden Entity SQL-Abfragen verwenden die LIKE- und ESCAPE-Operatoren, um zu bestimmen, ob eine bestimmte Zeichenfolge mit einem angegebenen Muster übereinstimmt. Die erste Abfrage sucht nach dem, der Name mit den Zeichen Down_beginnt. Diese Abfrage verwendet die ESCAPE-Option, da der Unterstrich (_) ein Wildcardzeichen ist. Ohne angabe der ESCAPE-Option würde die Abfrage nach Werten Name suchen, die mit dem Wort Down beginnen, gefolgt von einem anderen Zeichen als dem Unterstrichzeichen. Die Abfragen basieren auf dem AdventureWorks Sales Model. Führen Sie die folgenden Schritte aus, um diese Abfrage zu kompilieren und auszuführen:
Gehen Sie wie folgt vor : Ausführen einer Abfrage, die PrimitiveType-Ergebnisse zurückgibt.
Übergeben Sie die folgende Abfrage als Argument an die
ExecutePrimitiveTypeQueryMethode:
-- LIKE and ESCAPE
-- If an AdventureWorksEntities.Products contained a Name
-- with the value 'Down_Tube', the following query would find that
-- value.
Select value P.Name FROM AdventureWorksEntities.Products AS P
WHERE P.Name LIKE 'DownA_%' ESCAPE 'A'
-- LIKE
Select value P.Name FROM AdventureWorksEntities.Products AS P
WHERE P.Name LIKE 'BB%'