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

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');
Copy

Beispiele

Ersetzen Sie die Zeichenfolge down durch die Zeichenfolge up.

SELECT REPLACE('down', 'down', 'up');
Copy
+-------------------------------+
| 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');
Copy
+-------------------------------------------------+
| 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');
Copy
+-----------------------+
| 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');
Copy

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;
Copy
+----------+---------+-------------+------------+
| 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 Zeichenfolge new car ersetzt.

  • In der Zeichenfolge sad face wurde die Teilzeichenfolge sad durch die Teilzeichenfolge happy ersetzt, um die neue Zeichenfolge happy face zu erstellen.

  • In der Zeichenfolge snowman wurde die Teilzeichenfolge snow durch die Teilzeichenfolge fire ersetzt, um die neue Zeichenfolge fireman zu erstellen.