Patternmatching-Bedingungen - 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.

Patternmatching-Bedingungen

Patternmatching-Operatoren durchsuchen eine Zeichenfolge nach einem Muster, das in dem Bedingungsausdruck übergeben wird, und geben „wahr“ oder „falsch“ zurück, je nachdem, ob eine Übereinstimmung gefunden wird. Amazon Redshift verwendet drei Methoden für Patternmatching:

  • LIKEAusdrücke

    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. LIKEführt einen Vergleich unter Berücksichtigung der Groß- und Kleinschreibung ILIKE durch und führt einen Vergleich ohne Berücksichtigung der Groß-/Kleinschreibung durch.

  • SIMILARTO reguläre Ausdrücke

    Der SIMILAR TO-Operator ordnet einem Zeichenkettenausdruck ein SQL Standardmuster für reguläre Ausdrücke zu, das eine Reihe von Metazeichen enthalten kann, die dem Muster entsprechen, einschließlich der beiden, die vom Operator unterstützt werden. LIKE SIMILARTO entspricht der gesamten Zeichenfolge und führt eine Suche unter Berücksichtigung der Groß- und Kleinschreibung durch.

  • POSIXReguläre Ausdrücke im -Stil

    POSIXReguläre Ausdrücke bieten ein leistungsfähigeres Mittel für den Musterabgleich als die Operatoren LIKE und SIMILAR TO. POSIXMuster mit regulären Ausdrücken können mit jedem beliebigen Teil der Zeichenfolge übereinstimmen. Dabei wird die Groß- und Kleinschreibung beachtet.

Der Abgleich mit regulären Ausdrücken unter Verwendung von SIMILAR TO oder POSIX Operatoren ist rechenintensiv. Wir empfehlen die Verwendung, LIKE wann immer dies möglich ist, insbesondere bei der Verarbeitung einer sehr großen Anzahl von Zeilen. Beispielsweise sind die folgenden Abfragen funktionell identisch, aber die Abfrage, die verwendet, wird um ein Vielfaches schneller LIKE ausgeführt als die Abfrage, die einen regulären Ausdruck verwendet:

select count(*) from event where eventname SIMILAR TO '%(Ring|Die)%'; select count(*) from event where eventname LIKE '%Ring%' OR eventname LIKE '%Die%';