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

Subjekt

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.

Muster

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.

Ersetzung

Dies ist der Wert, der als Ersatz für Muster verwendet wird. Wenn dies weggelassen wird oder eine leere Zeichenfolge ist, löscht die Funktion REPLACE einfach alle Vorkommen von Muster.

Rückgabewerte

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

Nutzungshinweise

  • Wenn Ersetzung angegeben ist, wird Subjekt zurückgegeben, wobei alle Vorkommen von Muster entfernt werden.

  • Wenn Ersetzung angegeben ist, wird Subjekt zurückgegeben, wobei alle Vorkommen von Muster durch Ersetzung ersetzt werden.

  • Wenn eines der Argumente NULL ist, lautet das Ergebnis auch NULL.

Bemerkung

Es werden nur Vorkommen im ursprünglichen Subjekt berücksichtigt. Ein Muster, 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 |
+----------+---------+-------------+------------+