LIKE - Amazon Redshift

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 Zeichenfolgenausdruck (beispielsweise einen Spaltennamen) mit einem Muster, in dem die Platzhalterzeichen % (Prozentzeichen) und _ (Unterstrich) verwendet werden können. Beim LIKE-Patternmatching wird jeweils die gesamte Zeichenfolge durchsucht. Um für ein Muster anzugeben, dass es an einer beliebigen Stelle innerhalb der Zeichenfolge auftreten kann, muss es in Prozentzeichen eingeschlossen werden.

Bei LIKE wird die Groß-/Kleinschreibung berücksichtigt, bei ILIKE nicht.

Syntax

expression [ NOT ] LIKE | ILIKE pattern [ ESCAPE 'escape_char' ]

Argumente

expression

Ein gültiger UTF8-Zeichenfolgenausdruck (beispielsweise ein Spaltenname).

LIKE | ILIKE

Bei LIKE wird beim Patternmatching die Groß-/Kleinschreibung berücksichtigt. Bei ILIKE wird beim Patternmatching die Groß-/Kleinschreibung nicht berücksichtigt, wenn die Zeichenfolge aus UTF-8 (ASCII)-Zeichen besteht. Zur Durchführung eines Patternmatchingvorgangs ohne Berücksichtigung der Groß-/Kleinschreibung verwenden Sie die LOWER-Funktion für expression und pattern mit einer LIKE-Bedingung.

Im Gegensatz zu Vergleichsprädikaten wie = und <> ignorieren LIKE- und ILIKE-Prädikate nicht implizit nachfolgende Leerzeichen. Um nachfolgende Leerzeichen zu ignorieren, verwenden Sie RTRIM, oder konvertieren Sie eine CHAR-Spalte explizit zu VARCHAR.

Der Operator ~~ entspricht LIKE und ~~* entspricht ILIKE. Die Operatoren !~~ und !~~* entsprechen außerdem NOT LIKE und NOT ILIKE.

pattern

Ein gültiger UTF8-Zeichenfolgenausdruck mit dem Muster für das Patternmatching.

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 pattern keine Metazeichen enthält, ist wird das Muster als die Zeichenfolge selbst interpretiert. In diesem Fall liefert LIKE dasselbe Ergebnis wie der Gleichheitsoperator.

Die Zeichenfolgenausdrücke können vom Datentyp CHAR oder VARCHAR sein. Wenn unterschiedliche Datentypen verwendet werden, konvertiert Amazon Redshift pattern in den Datentyp des Ausdrucks expression.

LIKE unterstützt die folgenden Metazeichen in Mustern:

Operator Beschreibung
% Entspricht einer Folge von 0 oder mehr Zeichen.
_ Entspricht einem beliebigen Zeichen.

Beispiele

In der folgenden Tabelle werden Beispiele für Patternmatching mit LIKE dargestellt.

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: In dem Befehl wird ILIKE verwendet, um zu zeigen, dass bei ILIKE die Groß-/Kleinschreibung nicht berücksichtigt 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 eine Suche ohne Berücksichtigung der Groß- und Kleinschreibung (ILIKE) nach Städten durchzuführen, die mit „Ag“ beginnen.

select distinct city from users where city ~~* 'Ag%' order by city; city ------------ Agat Agawam Agoura Hills Aguadilla