SIMILARZU - 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.

SIMILARZU

Der SIMILAR TO-Operator ordnet einem Zeichenkettenausdruck, z. B. einem Spaltennamen, ein Standardmuster für reguläre Ausdrücke zu. SQL Ein Muster für SQL reguläre Ausdrücke kann eine Reihe von Metazeichen enthalten, die dem Muster entsprechen, einschließlich der beiden, die vom Operator unterstützt werden. LIKE

Der SIMILAR TO-Operator gibt nur dann true zurück, wenn sein Muster mit der gesamten Zeichenfolge übereinstimmt, im Gegensatz zum Verhalten bei POSIX regulären Ausdrücken, bei denen das Muster mit einem beliebigen Teil der Zeichenfolge übereinstimmen kann.

SIMILARTO führt eine Suche unter Berücksichtigung der Groß-/Kleinschreibung durch.

Anmerkung

Der Abgleich regulärer Ausdrücke mit SIMILAR TO 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%';

Syntax

expression [ NOT ] SIMILAR TO pattern [ ESCAPE 'escape_char' ]

Argumente

expression

Ein UTF gültiger Ausdruck mit 8 Zeichen, z. B. ein Spaltenname.

SIMILARZU

SIMILARTO führt einen Mustervergleich unter Berücksichtigung der Groß- und Kleinschreibung für die gesamte Zeichenfolge im Ausdruck durch.

pattern

Ein UTF gültiger Ausdruck mit 8 Zeichen, der ein SQL Standardmuster für reguläre Ausdrücke darstellt.

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, wird das Muster als die Zeichenfolge selbst interpretiert.

Bei jedem der Zeichenausdrücke kann es sich um CHAR einen VARCHAR Datentyp handeln. Wenn unterschiedliche Datentypen verwendet werden, konvertiert Amazon Redshift pattern in den Datentyp des Ausdrucks expression.

SIMILARTO unterstützt die folgenden Metazeichen für den Musterabgleich:

Operator Beschreibung
% Entspricht einer Folge von 0 oder mehr Zeichen.
_ Entspricht einem beliebigen Zeichen.
| Alternativen (eines der beiden angegebenen Teilmuster).
* Wiederholt das vorangehende Element 0 oder mehr Male.
+ Wiederholt das vorangehende Element 1 oder mehr Male.
? Wiederholt das vorangehende Element 0 oder 1 Mal.
{m} Wiederholt das vorangehende Element genau m Male.
{m,} Wiederholt das vorangehende Element m oder mehr Male.
{m,n} Wiederholt das vorangehende Element m bis n Male.
() Klammern fassen Elemente zu einem logischen Element zusammen.
[...] Ein Klammerausdruck spezifiziert eine Zeichenklasse, genau wie bei regulären Ausdrücken. POSIX

Beispiele

Die folgende Tabelle zeigt Beispiele für den Musterabgleich mit SIMILAR TO:

Ausdruck Rückgabewert
'abc' SIMILAR TO 'abc' Wahr
'abc' SIMILAR TO '_b_' True
'abc' SIMILAR TO '_A_' False
'abc' SIMILAR TO '%(b|d)%' True
'abc' SIMILAR TO '(b|c)%' False
'AbcAbcdefgefg12efgefg12' SIMILAR TO '((Ab)?c)+d((efg)+(12))+' True
'aaaaaab11111xy' SIMILAR TO 'a{6}_ [0-9]{5}(x|y){2}' True
'$0.87' SIMILAR TO '$[0-9]+(.[0-9][0-9])?' Wahr

Das folgende Beispiel listet Städte auf, deren Name ein „E“ oder ein „H“ enthält:

SELECT DISTINCT city FROM users WHERE city SIMILAR TO '%E%|%H%' ORDER BY city LIMIT 5; city ----------------- Agoura Hills Auburn Hills Benton Harbor Beverly Hills Chicago Heights

In dem folgenden Beispiel wird die Standard-Escape-Zeichenfolge (\\) verwendet, um nach Zeichenfolgen zu suchen, die den Unterstrich (_) enthalten.

SELECT tablename, "column" FROM pg_table_def WHERE "column" SIMILAR TO '%start\\_%' ORDER BY tablename, "column" LIMIT 5; tablename | column --------------------------+--------------------- stcs_abort_idle | idle_start_time stcs_abort_idle | txn_start_time stcs_analyze_compression | start_time stcs_auto_worker_levels | start_level stcs_auto_worker_levels | start_wlm_occupancy

In dem folgenden Beispiel wird als Escape-Zeichenfolge ^ verwendet, und dann wird nach Zeichenfolgen gesucht, die den Unterstrich (_) enthalten.

SELECT tablename, "column" FROM pg_table_def WHERE "column" SIMILAR TO '%start^_%' ESCAPE '^' ORDER BY tablename, "column" LIMIT 5; tablename | column --------------------------+--------------------- stcs_abort_idle | idle_start_time stcs_abort_idle | txn_start_time stcs_analyze_compression | start_time stcs_auto_worker_levels | start_level stcs_auto_worker_levels | start_wlm_occupancy