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> ] )
Copy

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 Funktion REPLACE einfach alle Vorkommen von pattern.

Rückgabewerte

Der zurückgegebene Wert ist die Zeichenfolge, nachdem alle Ersetzungen durchgeführt wurden.

Nutzungshinweise

  • Wenn in replacement kein Ersetzungswert angegeben ist, wird subject zurückgegeben, wobei alle Vorkommen des Werts pattern entfernt werden.

  • Wenn in replacement ein Ersetzungswert angegeben ist, wird subject zurückgegeben, wobei alle Vorkommen von pattern durch replacement 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                    |
+-----------------------+
Copy

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 |
+----------+---------+-------------+------------+
Copy