SQLite
 sql >> Datenbank >  >> RDS >> SQLite

Funktionsweise von Replace() in SQLite

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