Problem:
Du vill ta bort en radbrytning i en kolumn.
Exempel:
Vår databas har en tabell som heter address_book med data i kolumnerna city_name och company_address . Du vill byta ut var och en av flikarna och radbrytningarna i company_address kolumn med ' ' (ett mellanslag) för att göra det mer visuellt tilltalande.
| stadsnamn | företagsadress |
|---|---|
| Tokyo | 15th Oreo Street, Tokyo 9870-11 |
| Warszawa | 18 Marszalkowska Ave, Warszawa 03-654 |
| Accra | 123 Banana Junction, Circle-Accra, 00244 |
| Berlin | 25th Mango Avenue, Asyl Down, DE-1234 |
Lösning:
Här är frågan:
SELECT city_name, REPLACE(company_address, CHR(10) || CHR(13) || CHR(9), ‘ ‘) FROM address_book;
Här är resultatet av frågan:
| stadsnamn | företagsadress |
|---|---|
| Tokyo | 15th Oreo Street, Tokyo 9870-11 |
| Warszawa | 18 Marszalkowska Ave, Warszawa 03-654 |
| Accra | 123 Banana Junction, Circle-Accra, 00244 |
| Berlin | 25th Mango Avenue, Asylum Down, DE-1234 |
Diskussion:
REPLACE() funktion används vanligtvis för att ersätta alla förekomster av en specificerad sträng i en sträng med en annan sträng. Du kan fråga varför vi använde CHR(10) och CHR(13) i exemplet ovan. CHR() funktionen används för att infoga kontrolltecken i en sträng. CHR(10) används för att infoga radbrytningar, CHR(9) är för flikar och CHR(13) är för fraktretur.
I exemplet ovan ville vi ta bort alla förekomster av radbrytningen, tabben och vagnretur, så vi använde CHR(10) , CHR(9) och CHR(13) . De kan kombineras med konkateneringstecknet i Oracle (|| ) för att ta bort alla deras förekomster i en kolumn. Ett exempel på syntax är REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ ) .