- Kategorien:
Zeichenfolgen- und Binärfunktionen (Abgleich/Vergleich)
REPLACE¶
Entfernt alle Vorkommen einer bestimmten Teilzeichenfolge und ersetzt sie optional durch eine andere Zeichenfolge.
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¶
Arguments with collation specifications are currently not supported.
Beispiele¶
Ersetzen einer bc
-Zeichenfolge in abcd
durch eine leere Zeichenfolge:
SELECT REPLACE('abcd', 'bc') FROM DUAL; +-----------------------+ | REPLACE('ABCD', 'BC') | |-----------------------| | ad | +-----------------------+
Ersetzen von Zeichenfolgen in einem Wert durch eine angegebene Ersetzung:
CREATE OR REPLACE TABLE replace_example(subject varchar(10), pattern varchar(10), replacement varchar(10)); INSERT INTO replace_example VALUES('snowman', 'snow', 'fire'), ('sad face', 'sad', 'happy'); SELECT subject, pattern, replacement, REPLACE(subject, pattern, replacement) AS new FROM replace_example; +----------+---------+-------------+------------+ | SUBJECT | PATTERN | REPLACEMENT | NEW | |----------+---------+-------------+------------| | snowman | snow | fire | fireman | | sad face | sad | happy | happy face | +----------+---------+-------------+------------+