Das SQLite replace()
Funktion ermöglicht es uns, einen String (oder einen Teil eines Strings) durch einen anderen String zu ersetzen.
Es funktioniert so, dass Sie drei Argumente angeben; die Zeichenfolge, die die zu ersetzende Teilzeichenfolge enthält, die zu ersetzende Teilzeichenfolge in dieser Zeichenfolge und die Zeichenfolge, durch die sie ersetzt werden soll.
Syntax
Die Syntax lautet wie folgt:
replace(X,Y,Z)
Die Funktion gibt eine Zeichenfolge zurück, die durch Ersetzen der Zeichenfolge Z für jedes Vorkommen der Zeichenfolge Y in der Zeichenfolge X gebildet wird.
Die BINARY-Vergleichsfolge wird für Vergleiche verwendet. Wenn Y eine leere Zeichenfolge ist, geben Sie X unverändert zurück. Wenn Z ursprünglich kein String ist, wird es vor der Verarbeitung in einen UTF-8-String umgewandelt.
Beispiel
Hier ist ein einfaches Beispiel zur Veranschaulichung.
SELECT replace('Red Sky', 'Red', 'Blue');
Ergebnis:
Blue Sky
Wenn das zweite Argument nicht im ersten Argument gefunden wird, wird nichts ersetzt und die ursprüngliche Zeichenfolge zurückgegeben.
SELECT replace('Red Sky', 'Green', 'Blue');
Ergebnis:
Red Sky
Wenn das zweite Argument ein leerer String ist, wird wiederum nichts ersetzt und der ursprüngliche String zurückgegeben.
SELECT replace('Red Sky', '', 'Blue');
Ergebnis:
Red Sky
Aber das gleiche kann nicht über das dritte Argument gesagt werden. Wenn dies eine leere Zeichenfolge ist (und das zweite Argument im ersten Argument gefunden wird), wird das zweite Argument aus der Zeichenfolge entfernt.
SELECT replace('Red Sky', 'Red', '');
Ergebnis:
Sky
Dies geschieht jedoch nicht, wenn das zweite Argument nicht in der Zeichenfolge gefunden wird.
SELECT replace('Red Sky', 'Blue', '');
Ergebnis:
Red Sky
Ersetzen durch einen Nicht-String
Wenn das dritte Argument kein String ist, wird es vor der Verarbeitung in einen UTF-8-String umgewandelt.
SELECT replace('Red Sky', 'Red', 8);
Ergebnis:
8 Sky
Datenbankbeispiel
Hier ist ein Beispiel, das Daten aus einer Datenbanktabelle nimmt und eine bestimmte Zeichenfolge/Teilzeichenfolge durch eine andere Zeichenfolge ersetzt.
SELECT
ProductName,
replace(ProductName, 'Widget', 'Car')
FROM Products;
Ergebnis:
ProductName replace(ProductName, 'Widget', 'Car') -------------- ------------------------------------- Homer's Widget Homer's Car Peter's Widget Peter's Car Bob's Widget Bob's Car