- 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¶
subjectDer 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.
patternDies 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.
replacementDies ist der Wert, der als Ersatz für
patternverwendet wird. Wenn dies weggelassen wird oder eine leere Zeichenfolge ist, löscht die FunktionREPLACEeinfach alle Vorkommen vonpattern.
Rückgabewerte¶
Der zurückgegebene Wert ist die Zeichenfolge, nachdem alle Ersetzungen durchgeführt wurden.
Nutzungshinweise¶
Wenn in
replacementkein Ersetzungswert angegeben ist, wirdsubjectzurückgegeben, wobei alle Vorkommen des Wertspatternentfernt werden.Wenn in
replacementein Ersetzungswert angegeben ist, wirdsubjectzurückgegeben, wobei alle Vorkommen vonpatterndurchreplacementersetzt 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)
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 carwurde durch die Zeichenfolgenew carersetzt.In der Zeichenfolge
sad facewurde die Teilzeichenfolgesaddurch die Teilzeichenfolgehappyersetzt, um die neue Zeichenfolgehappy facezu erstellen.In der Zeichenfolge
snowmanwurde die Teilzeichenfolgesnowdurch die Teilzeichenfolgefireersetzt, um die neue Zeichenfolgefiremanzu erstellen.