sql >> Database >  >> RDS >> SQLite

Hoe Replace() werkt in SQLite

De SQLite replace() functie stelt ons in staat om een ​​string (of een deel van een string) te vervangen door een andere string.

De manier waarop het werkt is dat je drie argumenten geeft; de tekenreeks die de te vervangen subtekenreeks bevat, de subtekenreeks binnen die tekenreeks die moet worden vervangen en de tekenreeks waarmee deze moet worden vervangen.

Syntaxis

De syntaxis gaat als volgt:

replace(X,Y,Z)

De functie retourneert een tekenreeks die wordt gevormd door tekenreeks Z te vervangen voor elk voorkomen van tekenreeks Y in tekenreeks X.

De BINAIRE sorteervolgorde wordt gebruikt voor vergelijkingen. Als Y een lege string is, retourneer dan X ongewijzigd. Als Z in eerste instantie geen string is, wordt deze voorafgaand aan de verwerking naar een UTF-8-string gegoten.

Voorbeeld

Hier is een eenvoudig voorbeeld om te demonstreren.

SELECT replace('Red Sky', 'Red', 'Blue');

Resultaat:

Blue Sky

Als het tweede argument niet wordt gevonden in het eerste argument, wordt er niets vervangen en wordt de oorspronkelijke string geretourneerd.

SELECT replace('Red Sky', 'Green', 'Blue');

Resultaat:

Red Sky

Als het tweede argument een lege string is, wordt er niets vervangen en wordt de originele string teruggegeven.

SELECT replace('Red Sky', '', 'Blue');

Resultaat:

Red Sky

Maar hetzelfde kan niet gezegd worden over het derde argument. Als dat een lege string is (en het tweede argument wordt gevonden in het eerste argument), dan wordt het tweede argument uit de string verwijderd.

SELECT replace('Red Sky', 'Red', '');

Resultaat:

 Sky

Dit gebeurt echter niet als het tweede argument niet in de string wordt gevonden.

SELECT replace('Red Sky', 'Blue', '');

Resultaat:

Red Sky

Vervangen door een niet-string

Als het derde argument geen string is, wordt het voorafgaand aan de verwerking naar een UTF-8-string gecast.

SELECT replace('Red Sky', 'Red', 8);

Resultaat:

8 Sky

Databasevoorbeeld

Hier is een voorbeeld dat gegevens uit een databasetabel haalt en een bepaalde tekenreeks/subtekenreeks vervangt door een andere tekenreeks.

SELECT 
  ProductName,
  replace(ProductName, 'Widget', 'Car')
FROM Products;

Resultaat:

ProductName     replace(ProductName, 'Widget', 'Car')
--------------  -------------------------------------
Homer's Widget  Homer's Car                          
Peter's Widget  Peter's Car                          
Bob's Widget    Bob's Car                            

  1. Voeg een samenvattingsrij toe met totalen

  2. JDBC-verbindingen in pool sluiten

  3. FORALL-instructie met onder- en bovengrens in Oracle Database

  4. Hoe panda's DataFrame upsert naar Microsoft SQL Server-tabel?