- Kategorien:
Zeichenfolgen- und Binärfunktionen (Abgleich/Vergleich)
REPLACE¶
Entfernt alle Vorkommen einer bestimmten Teilzeichenfolge und ersetzt sie optional durch eine andere Teilzeichenfolge.
Syntax¶
REPLACE( <subject> , <pattern> [ , <replacement> ] )
Argumente¶
subject
Der Betreff ist die Zeichenfolge, in der die Ersetzungen vorgenommen werden sollen. Normalerweise ist dies eine Spalte, es kann sich jedoch auch um ein Literal handeln.
pattern
Dies ist der Teilstring, den Sie ersetzen möchten. Normalerweise ist dies ein Literal, es kann sich jedoch um eine Spalte oder einen Ausdruck handeln. Beachten Sie, dass dies kein „regulärer Ausdruck“ ist. Wenn Sie mit regulären Ausdrücken nach einem Muster suchen möchten, verwenden Sie die Funktion REGEXP_REPLACE.
replacement
Dies ist der Wert, der als Ersatz für
pattern
verwendet wird. Wenn dies weggelassen wird oder eine leere Zeichenfolge ist, löscht die FunktionREPLACE
einfach alle Vorkommen vonpattern
.
Rückgabewerte¶
Der zurückgegebene Wert ist die Zeichenfolge, nachdem alle Ersetzungen durchgeführt wurden.
Nutzungshinweise¶
Wenn in
replacement
kein Ersetzungswert angegeben ist, wirdsubject
zurückgegeben, wobei alle Vorkommen des Wertspattern
entfernt werden.Wenn in
replacement
ein Ersetzungswert angegeben ist, wirdsubject
zurückgegeben, wobei alle Vorkommen vonpattern
durchreplacement
ersetzt werden.Wenn eines der Argumente NULL ist, lautet das Ergebnis auch NULL.
Bemerkung
Es werden nur Vorkommen im ursprünglichen subject
berücksichtigt. Ein pattern
, das im Ergebnis vorkommt, wird nicht entfernt/ersetzt.
Sortierungsdetails¶
The collation specifications of all input arguments must be compatible.
Diese Funktion bietet keine Unterstützung für folgende Sortierungsspezifikationen:
pi
(ohne Beachtung der Interpunktion)cs-ai
(Beachtung von Groß-/Kleinschreibung, keine Beachtung von Akzenten)
Bemerkung
Um diese Funktion mit einer Spalte zu verwenden, die die Sortierungsspezifizierer upper
oder lower
aufweist, müssen Sie Verhaltensänderungs-Bundle 2024_02 in Ihrem Konto aktivieren.
Um dieses Bundle in Ihrem Konto zu aktivieren, führen Sie die folgende Anweisung aus:
SELECT SYSTEM$ENABLE_BEHAVIOR_CHANGE_BUNDLE('2024_02');
Beispiele¶
Ersetzen Sie die Zeichenfolge down
durch die Zeichenfolge up
.
SELECT REPLACE('down', 'down', 'up');+-------------------------------+ | REPLACE('DOWN', 'DOWN', 'UP') | |-------------------------------| | up | +-------------------------------+
Ersetzen Sie die Teilzeichenfolge Athens
in der Zeichenfolge Vacation in Athens
durch die Teilzeichenfolge Rome
:
SELECT REPLACE('Vacation in Athens', 'Athens', 'Rome');+-------------------------------------------------+ | REPLACE('VACATION IN ATHENS', 'ATHENS', 'ROME') | |-------------------------------------------------| | Vacation in Rome | +-------------------------------------------------+
Ersetzen Sie die Teilzeichenfolge bc
in der Zeichenfolge abcd
durch eine leere Teilzeichenfolge:
SELECT REPLACE('abcd', 'bc');+-----------------------+ | REPLACE('ABCD', 'BC') | |-----------------------| | ad | +-----------------------+
Ersetzen Sie die Werte in einer Tabelle durch neue Werte.
Erstellen Sie eine Tabelle, und füllen Sie diese mit Werten:
CREATE OR REPLACE TABLE replace_example( subject VARCHAR(10), pattern VARCHAR(10), replacement VARCHAR(10)); INSERT INTO replace_example VALUES ('old car', 'old car', 'new car'), ('sad face', 'sad', 'happy'), ('snowman', 'snow', 'fire');Ersetzen von Zeichenfolgen in einem Wert durch eine angegebene Ersetzung:
SELECT subject, pattern, replacement, REPLACE(subject, pattern, replacement) AS new FROM replace_example ORDER BY subject;+----------+---------+-------------+------------+ | SUBJECT | PATTERN | REPLACEMENT | NEW | |----------+---------+-------------+------------| | old car | old car | new car | new car | | sad face | sad | happy | happy face | | snowman | snow | fire | fireman | +----------+---------+-------------+------------+Die Ausgabe zeigt die folgenden Ersetzungen:
Die Zeichenfolge
old car
wurde durch die Zeichenfolgenew car
ersetzt.In der Zeichenfolge
sad face
wurde die Teilzeichenfolgesad
durch die Teilzeichenfolgehappy
ersetzt, um die neue Zeichenfolgehappy face
zu erstellen.In der Zeichenfolge
snowman
wurde die Teilzeichenfolgesnow
durch die Teilzeichenfolgefire
ersetzt, um die neue Zeichenfolgefireman
zu erstellen.