sql >> Databasteknik >  >> RDS >> Oracle

Hur man byter ut en ny linje i Oracle

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), ‘ ‘ ) .


  1. Visar bild från PostgreSQL-databas, bytea

  2. SQL-strängjämförelse, större än och mindre än operatorer

  3. Arbeta med JavaFX UI och JDBC Applications

  4. Logga alla frågor i mysql