Dies ist die Syntax für die LIKE-Suchbedingung:
expression [ NOT ] LIKE pattern
expression Die zu durchsuchende Zeichenfolge.
pattern Das Muster, nach dem in expression gesucht werden soll.
Die Suchbedingung LIKE versucht, eine Übereinstimmung zwischen expression und pattern zu finden. Sie ergibt TRUE, FALSE oder UNKNOWN. Die Suchbedingung wird mit TRUE ausgewertet, wenn expression mit pattern übereinstimmt (wenn nicht NOT angegeben wurde). Falls entweder expression oder pattern einen NULL-Wert darstellt, wird diese Suchbedingung mit UNKNOWN ausgewertet.
Das Schlüsselwort NOT kehrt die Bedeutung der Suchbedingung um, lässt UNKNOWN aber unverändert.
expression und pattern werden als CHAR Zeichenfolgen interpretiert. pattern kann eine beliebige Anzahl von Wildcard-Zeichen aus der folgenden Tabelle enthalten:
Wildcard-Zeichen | Gefunden |
---|---|
_ (Unterstrich) | Ein Zeichen. Beispiel: a_ finden ab und ac, nicht aber a.
|
% (Prozent) | Eine Zeichenfolge mit null oder mehr Zeichen. Beispiel: bl% findet bl und bla.
|
[] | Ein einzelnes Zeichen im angegebenen Bereich oder der angegebenen Menge. Beispiel: T[oi]m findet Tom oder Tim.
|
[^] | Ein einzelnes Zeichen, das nicht im angegebenen Bereich oder der angegebenen Menge enthalten ist. Beispiel: M[^c] findet Mb und Md, aber nicht Mc.
|
Die folgende Suchbedingung ergibt TRUE für eine Zeile, in der der Spaltenname (column-name) mit dem Buchstaben a beginnt und den Buchstaben b als zweitletztes Zeichen hat:
SELECT * FROM table-name WHERE column-name LIKE 'a%b_' |
Suche nach | Beispiel | Zusätzliche Informationen |
---|---|---|
Eine Zeichenmenge | LIKE 'sm[iy]th' |
Die Suche einer Menge von Zeichen wird festgelegt, indem die Zeichen innerhalb von eckigen Klammern aufgelistet werden. In diesem Beispiel findet die Suchbedingung smith und smyth. |
Ein Zeichenbereich | LIKE '[a-r]ough' |
Die Suche nach einem Bereich von Zeichen wird festgelegt, indem die Bereichsgrenzen innerhalb von eckigen Klammern durch einen Bindestrich getrennt angegeben werden. In diesem Beispiel findet die Suchbedingung bough und rough, aber nicht tough. Der Bereich der Zeichen [a-z] wird als "größer als oder gleich mit a und kleiner als oder gleich mit z" interpretiert, wobei die Vorgänge "größer als" und "kleiner als" innerhalb der Kollatierung der Datenbank ausgeführt werden. Die untere Bereichsgrenze muss vor der oberen Bereichsgrenze stehen. Beispiel: |
Bereiche und Mengen kombiniert | ... LIKE '[a-rt]ough' |
Sie können Bereiche und Mengen innerhalb eckiger Klammern kombinieren. In diesem Beispiel findet Das Muster "[a-rt]" wird als "Genau ein Zeichen, das entweder im Bereich von a bis inklusive r liegt oder t ist" interpretiert. |
Ein Zeichen außerhalb des Bereichs | ... LIKE '[^a-r]ough' |
Mit dem Einschaltungszeichen (^) wird ein Bereich von Zeichen festgelegt, der von einer Suche ausgeschlossen ist. In diesem
Beispiel findet Das Einschaltungszeichen negiert den Rest des Inhalts der eckigen Klammern. Der Klammerausdruck [^a-rt] wird als "Genau ein Zeichen, das nicht im Bereich von a bis inklusive r liegt oder nicht t ist" interpretiert. |
Suchmuster mit nachgestellten Leerzeichen | '90 ' , '90[ ]' und '90_' |
Wenn Ihr Suchmuster nachgestellte Leerzeichen enthält, bringt der Datenbankserver das Suchmuster nur mit Werten in Übereinstimmung, die Leerzeichen enthalten – es wird nicht mit Leerzeichen aufgefüllt. Die Suchmuster "90 ", "90[ ]" und "90_" stimmen z.B. mit dem Ausdruck "90 " überein, nicht aber mit "90", auch wenn der geprüfte Wert in einer CHAR- oder VARCHAR-Spalte steht, die drei oder mehr Zeichen breit ist. |
Jedes einzelne Zeichen in eckigen Klammern bedeutet genau dieses Zeichen. Beispiel: [a]
entspricht nur dem Zeichen a. [^]
entspricht nur dem Einschaltungszeichen, [%]
entspricht nur dem Prozentzeichen (das Prozentzeichen steht in diesem Fall nicht als Platzhalter) und [_]
entspricht nur dem Unterstrich-Zeichen. [[]
entspricht ebenso nur dem Zeichen [.
Das Muster [a-]
entspricht dem Zeichen a oder -.
Das Muster []
findet nie eine Entsprechung und gibt nie Zeilen zurück.
Die Muster [
oder [abp-q
geben Syntaxfehler zurück, weil eine geschlossene eckige Klammer fehlt.
Wildcard-Zeichen können nicht innerhalb von eckigen Klammern verwendet werden. Das Muster [a%b]
findet a, % oder b.
Sie können das Einschaltungszeichen nur als erstes Zeichen in der eckigen Klammer zum Negieren von Bereichen verwenden. Das
Muster [a^b]
findet a, ^ oder b.
Wenn die Datenbankkollatierung Groß-/Kleinschreibung berücksichtigt, beachtet die Suchbedingung ebenfalls die Groß- und Kleinschreibung. Um eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung mit einer Kollatierung durchzuführen, in der die Groß- und Kleinschreibung berücksichtigt wird, müssen Sie Groß- und Kleinbuchstaben eingeben. Die folgende Suchbedingung ergibt zum Beispiel für die Zeichenfolgen Bough, rough und TOUGH den Wert TRUE.
LIKE '[a-zA-Z][oO][uU][gG][hH]' |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |