Weiter zum Inhalt

So verwendest du die SQL-Funktion REPLACE()

Lerne, wie du mit der SQL-Funktion REPLACE() Teilstrings in deiner Datenbank findest und ersetzt. Behandelt Syntax, Case-Sensitivity, das Entfernen von Zeichen, den Umgang mit NULL und Performance-Tipps.
Aktualisiert 3. Juni 2026  · 7 Min. lesen

Die SQL-Funktion REPLACE() ist hilfreich zur Textmanipulation, da sie einen Teil eines Strings durch eine angegebene Teilzeichenfolge ersetzen kann. Meistens wird REPLACE() genutzt, um alle Vorkommen einer Teilzeichenfolge innerhalb eines Strings in einem Datensatz zu ändern.

Textmanipulation ist in SQL wichtig, weil sie Daten für eine effiziente Analyse bereinigt und transformiert. In diesem Tutorial zeige ich dir, wie du sie einsetzt.

Wenn du angehende Data Scientist oder Data Engineer bist, empfehle ich dir den DataCamp-Kurs Introduction to SQL, um die Grundlagen von SQL-Funktionen in der Datentransformation zu verstehen. Außerdem lohnt sich unser Leitfaden zu SQL-Stringfunktionen, um Basis­konzepte aufzufrischen, bevor wir tiefer einsteigen. 

Erhalte eine Top-SQL-Zertifizierung

Stelle deine SQL-Kenntnisse unter Beweis und bringe deine Datenkarriere voran.
Werde SQL-zertifiziert

Kurz & knapp

  • REPLACE(string, old_substring, new_substring) tauscht alle Vorkommen einer Teilzeichenfolge in einem einzigen Aufruf aus

  • Mehrere Ersetzungen durch Verschachteln: REPLACE(REPLACE(col, 'a', 'b'), 'c', 'd')

  • Leeren String übergeben, um Zeichen zu entfernen: REPLACE(phone, '-', '')

  • Wenn ein Argument NULL ist, gibt die Funktion für diese Zeile NULL zurück

  • Die Groß-/Kleinschreibung hängt von Datenbank und Kollation ab—SQL Server und MySQL sind standardmäßig nicht case-sensitiv, PostgreSQL ist standardmäßig case-sensitiv

Die SQL-Funktion REPLACE() verstehen

Die SQL-Funktion REPLACE() sucht in einer Spalte nach einer angegebenen Teilzeichenfolge bzw. einem String und ersetzt sie durch einen anderen String. Das Beispiel unten zeigt die grundlegende Verwendung von REPLACE(). Die Argumente der Funktion sind:

  • string: Der Ursprungstext, in dem der Austausch stattfinden soll.

  • old_substring: Die zu ersetzende Teilzeichenfolge.

  • new_substring: Die Teilzeichenfolge, die die alte ersetzt.

REPLACE(string, old_substring, new_substring)

Wenn du REPLACE() verwendest, um Strings in einer Tabelle zu verändern, hat die Abfrage die folgende Syntax. Dabei gilt:

  • column_name: Die Spalte, in der nach Vorkommen gesucht wird.

  • old_substring: Die zu ersetzende Teilzeichenfolge.

  • new_substring: Die neue Teilzeichenfolge.

-- Wähle die Spalte description aus der Tabelle products aus
-- und ersetze alle Vorkommen von 'old' durch 'new'
SELECT 
    REPLACE(column_name, 'old_substring', 'new_substring') AS updated_column
FROM 
    Products;

Beispiel für REPLACE()

Die SQL-Funktion REPLACE() ersetzt alle Vorkommen eines Strings durch eine angegebene Teilzeichenfolge oder einen String. Im Beispiel unten ersetzt REPLACE() den Wert old durch new in der Spalte description. Die Abfrage läuft zeilenweise und tauscht den alten String jeweils aus.

-- Wähle die Spalte description aus der Tabelle products aus
-- und ersetze alle Vorkommen von 'old' durch 'new'
SELECT 
    REPLACE(description, 'old', 'new') AS updated_description
FROM 
    Products;

Hinweis: MySQL, PostgreSQL, Oracle und SQL Server unterstützen alle die Funktion REPLACE().

Anwendungsfälle von REPLACE() in SQL

Es gibt viele wichtige Anwendungsfälle für REPLACE() bei der Textmanipulation und Datentransformation. Dazu zählen:

Einfacher Ersatz

Mit REPLACE() kannst du einfache Ersetzungen durchführen. Nehmen wir an, wir haben die folgende Tabelle in unserer SQL-Server-Datenbank:

Products table example in SQL database.Beispieltabelle Products. Bild: Autorin/Autor.

Mit der folgenden SQL-Abfrage änderst du den Status old in new mithilfe von REPLACE().

SELECT 
    product_id,
    product_name,
    price,
    REPLACE(status, 'old', 'new') AS updated_status
FROM Products;

Die resultierende Tabelle sieht dann wie unten aus.

Example of Products table updated using the basic SQL REPLACE function

Tabelle aktualisiert mit SQL REPLACE(). Bild: Autorin/Autor.

Mehrere Teilzeichenfolgen ersetzen

Wenn du mehrere Teilzeichenfolgen ersetzen willst, verschachtle mehrere REPLACE()-Aufrufe. Hier ersetzen wir old durch outdated und new durch fresh.

-- Mehrere REPLACE()-Aufrufe verschachteln, um 'old' durch 'outdated' und 'new' durch 'fresh' zu ersetzen
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(REPLACE(status, 'old', 'outdated'), 'new', 'fresh') AS updated_status
FROM Products;

Das Ergebnis siehst du unten.

Example of Products table updated using multiple substrings of SQL REPLACE function.

Tabelle aktualisiert mit mehreren Ersetzungen. Bild: Autorin/Autor.

Zeichen entfernen

Übergebe einen leeren String als drittes Argument, um Zeichen vollständig zu entfernen. So lassen sich Satzzeichen, überflüssige Leerzeichen oder Formatierungszeichen am saubersten aus einer Spalte strippen.

-- Bindestriche aus Telefonnummern entfernen
SELECT
    customer_id,
    REPLACE(phone_number, '-', '') AS clean_phone
FROM Customers;

Zum Beispiel wird aus '555-867-5309' '5558675309'. Mit derselben Technik entfernst du Sonderzeichen, Kodierungsartefakte oder unerwünschte Leerzeichen aus importierten Daten.

Groß-/Kleinschreibung behandeln

Die Case-Sensitivity von REPLACE() hängt von deiner Datenbank und ihrer Kollation ab. PostgreSQL ist standardmäßig case-sensitiv, daher matcht REPLACE(col, 'Old', 'New') nicht 'old'. SQL Server und MySQL folgen der Kollation der Spalte oder Datenbank—in den Standardeinstellungen meist nicht case-sensitiv, daher matcht REPLACE() unabhängig von der Schreibweise.

Wenn du schreibungsunabhängig ersetzen willst, konvertiere den Text vorab mit UPPER() oder LOWER(). So bleiben Werte konsistent.

-- 'OLD' durch 'OUTDATED' ersetzen und Case über UPPER behandeln
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(UPPER(status), 'OLD', 'OUTDATED') AS updated_status
FROM Products;

Example output of table updated using the SQL REPLACE and UPPER functions.

Tabelle aktualisiert mit REPLACE() und UPPER(). Bild: Autorin/Autor.

-- 'old' durch 'outdated' ersetzen und Case über LOWER behandeln
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(LOWER(status), 'old', 'outdated') AS updated_status
FROM Products;

Example output of table updated using the SQL REPLACE and LOWER functions.

Tabelle aktualisiert mit SQL REPLACE() und LOWER(). Bild: Autorin/Autor.

Fortgeschrittene Techniken

Diese Techniken kombinieren REPLACE() mit anderen SQL-Funktionen, um Ersetzungen jenseits eines einfachen Suchen-und-Ersetzen abzudecken.

Mit dynamischen Werten ersetzen

Du kannst REPLACE() für dynamische Ersetzungen mit anderen SQL-Funktionen kombinieren. Zum Beispiel lässt sich der Wert einer anderen Spalte als Ersatz nutzen. Im Beispiel unten ersetzt REPLACE() jedes old durch den tatsächlichen Wert aus product_name.

-- 'old' durch den Wert aus der Spalte product_name ersetzen
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(status, 'old', product_name) AS updated_status
FROM Products;

Example output of table updated using SQL REPLACE function and dynamic values.

Tabelle aktualisiert mit REPLACE() und dynamischen Werten. Bild: Autorin/Autor.

REPLACE() in UPDATE-Anweisungen verwenden

REPLACE() funktioniert auch in UPDATE-Anweisungen, um Spaltenwerte über mehrere Zeilen zu ändern. Die Abfrage unten ersetzt old durch outdated in der Spalte status.

-- Spalte status aktualisieren: 'old' durch 'outdated' ersetzen
UPDATE Products
SET status = REPLACE(status, 'old', 'outdated')
WHERE status LIKE '%old%';

Für komplexere Fälle, z. B. Updates per Join, sieh dir unser Tutorial zu SQL UPDATE mit JOIN an.

REPLACE() mit anderen Stringfunktionen kombinieren

Eine fortgeschrittene Technik ist die Kombination von REPLACE() mit anderen SQL-Stringfunktionen wie CHARINDEX() oder SUBSTRING(), wenn Teilstrings ersetzt werden.

-- Den Teil des Produktnamens ab dem ersten Leerzeichen durch ' Updated' ersetzen
SELECT 
    product_id,
    product_name,
    price,
    -- Den Teilstring von product_name ab dem ersten Leerzeichen bis zum Ende extrahieren
    REPLACE(product_name, SUBSTRING(product_name, CHARINDEX(' ', product_name), LEN(product_name)), ' Updated') AS updated_product_name
FROM Products;

Die resultierende Tabelle der obigen Abfrage ist unten dargestellt.

Example output of table updated using REPLACE and other string functions.

Tabelle aktualisiert mit REPLACE() und weiteren Stringfunktionen. Bild: Autorin/Autor.

NULL durch 0 ersetzen

Du kannst die Funktion COALESCE() nutzen, um NULL vor dem Aufruf von REPLACE() durch einen Fallback zu ersetzen, wie unten gezeigt.

-- NULL in der Spalte status durch 'new' ersetzen
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(COALESCE(status, 'NULL'), 'NULL', 0) AS updated_status
FROM Products;

Stolperstein: Wenn irgendein Argument an REPLACE() NULL ist, gibt die Funktion für diese Zeile NULL zurück—selbst wenn die anderen Argumente gültig sind. Umhülle potenziell leere Spalten mit COALESCE() vor dem Aufruf von REPLACE(), nicht danach.

Praktische Einsatzszenarien für REPLACE()

Hier sind typische Szenarien, in denen REPLACE() in Produktivabfragen punktet.

  • Datenbereinigung: REPLACE() hilft, unerwünschte Zeichen oder Leerzeichen in Strings zu entfernen bzw. zu ersetzen.

  • Datentransformation: REPLACE() wird genutzt, um Werte in andere Formate zu überführen und veraltete Werte durch neue zu ersetzen.

  • Umgang mit Nutzereingaben: REPLACE() vereinheitlicht und konvertiert Eingabedaten auf einen in der Datenbank akzeptierten Standard. So bleibt der Datenbestand konsistent.

  • Textstandardisierung: REPLACE() standardisiert Werte in Textspalten, etwa Abkürzungen in durchgängig Klein- oder Großschreibung.

  • Bedingte Ersetzung: REPLACE() unterstützt einfache Regeln, um Werte gemäß definierten Bedingungen auszutauschen.

Datenbankspezifische Implementierungen von REPLACE()

MySQL, PostgreSQL, Oracle und SQL Server unterstützen alle die SQL-Funktion REPLACE() mit einer ähnlichen Syntax.

-- 'old' durch 'new' in der Spalte status ersetzen
SELECT 
    product_id,
    product_name,
    price,
    REPLACE(status, 'old', 'new') AS updated_status
FROM Products;

Performance und Best Practices für REPLACE()

Beim Einsatz von REPLACE() solltest du folgende Performanceaspekte und Best Practices beachten.

Auswirkung auf die Abfrageleistung

REPLACE() kann die Abfrageleistung beeinträchtigen, vor allem bei großen Datenmengen. Das liegt daran, dass die Funktion für jede Zeile verarbeitet wird und die Ausführung entsprechend dauern kann.

Indexierung beachten

Indiziere die Spalte, gegen die du in WHERE oder UPDATE mit REPLACE() prüfst. Ohne Index muss die Datenbank jede Zeile scannen—bei großen Tabellen besonders teuer.

Engpässe überwachen und beheben

Um Leistungsprobleme zu adressieren, beachte diese Best Practices:

  • Nutze Datenbank-Profiler, um Abfragen zu überwachen und bei großen Datenmengen zu optimieren.

  • Wenn du Stringwerte mit REPLACE() änderst, pflege Indizes regelmäßig, damit sie aktuell bleiben.

  • Setze Batchverarbeitung ein, um die Ausführungszeit bei sehr großen Datenmengen zu reduzieren.

Wenn du weitere fortgeschrittene SQL-Funktionen für Datentransformation lernen willst, empfehle ich den DataCamp-Kurs Learn SQL. Der Kurs Reporting in SQL behandelt außerdem Themen zur Datenbankoptimierung und zeigt Techniken zur Performanceverbesserung.

Fazit

REPLACE() deckt die meisten Anforderungen an Textersetzungen in SQL-Datenbanken ab. Behalte das Verhalten bei NULL im Kopf—jedes NULL-Argument führt zu NULL—und prüfe die Kollation deiner Datenbank, wenn es auf Groß-/Kleinschreibung ankommt.

Mehr über REPLACE() in SQL lernst du in den DataCamp-Kursen Intermediate SQL und SQL Fundamentals. Außerdem empfehle ich den Karrierepfad Associate Data Analyst in SQL, um die Anwendung von SQL in der Datentransformation zu vertiefen und deine Karriere zu beschleunigen. Abschließend lohnt sich die SQL Associate Certification von DataCamp, um deine SQL-Expertise sichtbar zu machen und im Bewerbungsgespräch zu überzeugen.

Wenn du dich für weitere SQL-Funktionen in der Datenanalyse interessierst, schau dir auch diese Tutorials an:

Häufige Fragen

Was ist die SQL-Funktion REPLACE()?

Die SQL-Funktion REPLACE() ersetzt bzw. verändert alle Vorkommen einer angegebenen Teilzeichenfolge durch eine andere.

Ist die Funktion REPLACE() case-sensitiv?

Die SQL-Funktion REPLACE() kann case-sensitiv sein. Wenn Werte unabhängig von der Schreibweise ersetzt werden sollen, konvertiere den String vorab mit UPPER oder LOWER.

Kann REPLACE() in SQL mehrere Teilzeichenfolgen ersetzen?

Wenn du mehrere Teilzeichenfolgen ersetzen willst, verschachtle mehrere REPLACE()-Funktionen in SQL.

Welche SQL-Datenbanken unterstützen REPLACE()?

Alle großen Datenbanken, darunter SQL Server, Oracle, PostgreSQL und MySQL, unterstützen die SQL-Funktion REPLACE().

Beeinflusst die SQL-Funktion REPLACE() die Performance?

Die SQL-Funktion REPLACE() kann sich bei großen Datenmengen auf die Abfrageleistung auswirken. Optimiere Abfragen und setze passende Indizes, um die Performance zu verbessern.


Allan Ouko's photo
Author
Allan Ouko
LinkedIn
Ich verfasse Artikel, die Datenwissenschaft und Analytik vereinfachen und leicht verständlich und zugänglich machen.
Themen

Lerne SQL mit DataCamp

Lernpfad

Assoziierter Datenanalyst in SQL

39 Std.
Erwerbe die SQL-Kenntnisse, die du brauchst, um eine Datenbank abzufragen, die Ergebnisse zu analysieren und ein SQL-kompetenter Datenanalyst zu werden. Du brauchst keine Erfahrung im Programmieren zu haben!
Details anzeigenRight Arrow
Kurs starten
Mehr anzeigenRight Arrow
Verwandt

Tutorial

So kürzt man eine Zeichenfolge in Python: Drei verschiedene Methoden

Lerne die Grundlagen zum Entfernen von führenden und nachfolgenden Zeichen aus einer Zeichenfolge in Python.
Adel Nehme's photo

Adel Nehme

Tutorial

Wie man in Python einen Eintrag aus einer Liste löscht

Lerne, wie du Elemente aus einer Liste in Python löschen kannst. Mach dich mit Methoden wie remove(), pop() und del für die Listenverwaltung vertraut.
Allan Ouko's photo

Allan Ouko

Tutorial

Auf 2 Dezimalstellen runden in Python: 7 Methoden erklärt

Lerne, wie du Zahlen in Python mit round(), f-Strings, format(), dem decimal-Modul, NumPy und mehr auf zwei Dezimalstellen rundest — inklusive Vergleichstabelle der Methoden.
Allan Ouko's photo

Allan Ouko

Tutorial

Fibonacci-Folge in Python: Lerne und entdecke Programmiertechniken

Finde raus, wie die Fibonacci-Folge funktioniert. Schau dir die mathematischen Eigenschaften und die Anwendungen in der echten Welt an.
Laiba Siddiqui's photo

Laiba Siddiqui

Tutorial

Python-Tutorial zum Verknüpfen von Zeichenfolgen

Lerne verschiedene Methoden zum Verknüpfen von Zeichenfolgen in Python kennen, mit Beispielen, die jede Technik zeigen.
DataCamp Team's photo

DataCamp Team

Tutorial

Python Datenstrukturen Tutorial

Mach dich mit Python-Datenstrukturen vertraut: Lerne mehr über Datentypen und primitive sowie nicht-primitive Datenstrukturen wie Strings, Listen, Stapel usw.
Sejal Jaiswal's photo

Sejal Jaiswal

Mehr anzeigenMehr anzeigen