Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
LIKE
Der LIKE Operator vergleicht einen Zeichenkettenausdruck, z. B. einen Spaltennamen, mit einem Muster, das die Platzhalterzeichen% (Prozent) und _ (Unterstrich) verwendet. LIKEDer Mustervergleich deckt immer die gesamte Zeichenfolge ab. Um für ein Muster anzugeben, dass es an einer beliebigen Stelle innerhalb der Zeichenfolge auftreten kann, muss es in Prozentzeichen eingeschlossen werden.
LIKEunterscheidet Groß- und Kleinschreibung; ILIKE unterscheidet nicht zwischen Groß- und Kleinschreibung.
Syntax
expression [ NOT ] LIKE | ILIKE pattern [ ESCAPE 'escape_char' ]
Argumente
- expression
-
Ein UTF gültiger Ausdruck mit 8 Zeichen, z. B. ein Spaltenname.
- LIKE | ILIKE
-
LIKEführt einen Mustervergleich unter Berücksichtigung der Groß- und Kleinschreibung durch. ILIKEführt einen Musterabgleich ohne Berücksichtigung der Groß- und Kleinschreibung für Einzelbyte-Zeichen vom Typ UTF -8 () durch. ASCII Um bei Multibyte-Zeichen einen Mustervergleich ohne Berücksichtigung der Groß- und Kleinschreibung durchzuführen, verwenden Sie die LOWERFunktion für Ausdruck und Muster mit einer Bedingung. LIKE
Im Gegensatz zu Vergleichsprädikaten wie = und <> ignorieren ILIKE Prädikate nachfolgende Leerzeichen nicht LIKE implizit. Um nachgestellte Leerzeichen zu ignorieren, verwenden Sie eine Spalte oder wandeln Sie sie explizit in um. RTRIM CHAR VARCHAR
Der
~~
Operator entspricht LIKE und~~*
ist äquivalent zuILIKE. Außerdem entsprechen die!~~*
Operatoren!~~
NOT LIKE und und NOTILIKE. - pattern
-
Ein UTF gültiger Ausdruck mit 8 Zeichen und dem Muster, das abgeglichen werden soll.
- escape_char
-
Ein Zeichenfolgenausdruck zur Kennzeichnung von Metazeichen im Muster als Literal. Dies ist standardmäßig die Zeichenfolge \\ (doppelter umgekehrter Schrägstrich).
Wenn das Muster keine Metazeichen enthält, stellt das Muster nur die Zeichenfolge selbst dar. In diesem Fall LIKE verhält es sich genauso wie der Gleichheitsoperator.
Bei jedem der Zeichenausdrücke kann es sich um Datentypen handeln. CHAR VARCHAR Wenn unterschiedliche Datentypen verwendet werden, konvertiert Amazon Redshift pattern in den Datentyp des Ausdrucks expression.
LIKEunterstützt die folgenden Metazeichen für den Musterabgleich:
Operator | Beschreibung |
---|---|
%
|
Entspricht einer Folge von 0 oder mehr Zeichen. |
_ |
Entspricht einem beliebigen Zeichen. |
Beispiele
Die folgende Tabelle zeigt Beispiele für den Musterabgleich mit: LIKE
Ausdruck | Rückgabewert |
---|---|
'abc' LIKE 'abc' |
Wahr |
'abc' LIKE 'a%' |
True |
'abc' LIKE '_B_' |
False |
'abc' ILIKE '_B_' |
True |
'abc' LIKE 'c%' |
Falsch |
Das folgende Beispiel listet alle Städte auf, die mit „E“ beginnen:
select distinct city from users where city like 'E%' order by city; city --------------- East Hartford East Lansing East Rutherford East St. Louis Easthampton Easton Eatontown Eau Claire ...
Das folgende Beispiel listet alle Benutzer auf, deren Nachname „ten“ enthält:
select distinct lastname from users where lastname like '%ten%' order by lastname; lastname ------------- Christensen Wooten ...
Im folgenden Beispiel wird veranschaulicht, wie Sie mehrere Muster zuordnen.
select distinct lastname from tickit.users where lastname like 'Chris%' or lastname like '%Wooten' order by lastname; lastname ------------- Christensen Christian Wooten ...
Das folgende Beispiel listet alle Städte auf, deren dritter und vierter Buchstabe die Folge „ea“ ist: Der Befehl wird verwendetILIKE, um zu demonstrieren, dass Groß- und Kleinschreibung nicht beachtet wird:
select distinct city from users where city ilike '__EA%' order by city; city ------------- Brea Clearwater Great Falls Ocean City Olean Wheaton (6 rows)
Im folgenden Beispiel wird die Standard-Escape-Zeichenfolge (\\) verwendet, um nach Zeichenfolgen zu suchen, die „start_“ (den Text start
gefolgt von einem Unterstrich _
) enthalten:
select tablename, "column" from pg_table_def where "column" like '%start\\_%' limit 5; tablename | column -------------------+--------------- stl_s3client | start_time stl_tr_conflict | xact_start_ts stl_undone | undo_start_ts stl_unload_log | start_time stl_vacuum_detail | start_row (5 rows)
Im folgenden Beispiel wird als Escape-Zeichenfolge ^ (das Caret-Zeichen) verwendet, und dann wird nach Zeichenfolgen gesucht, die „start_“ (den Text start
gefolgt von einem Unterstrich _
) enthalten:
select tablename, "column" from pg_table_def where "column" like '%start^_%' escape '^' limit 5; tablename | column -------------------+--------------- stl_s3client | start_time stl_tr_conflict | xact_start_ts stl_undone | undo_start_ts stl_unload_log | start_time stl_vacuum_detail | start_row (5 rows)
Im folgenden Beispiel wird der ~~*
Operator verwendet, um ohne Berücksichtigung der Groß-/Kleinschreibung (ILIKE) nach Städten zu suchen, die mit „Ag“ beginnen.
select distinct city from users where city ~~* 'Ag%' order by city;
city ------------ Agat Agawam Agoura Hills Aguadilla