sql >> Database teknologi >  >> RDS >> Oracle

Sådan udskiftes en ny linje i Oracle

Problem:

Du vil gerne fjerne et linjeskift i en kolonne.

Eksempel:

Vores database har en tabel med navnet address_book med data i kolonnerne city_name og company_address . Du vil gerne erstatte hver af fanerne og linjeskiftene i company_address kolonne med ' ' (et mellemrum) for at gøre det mere visuelt tiltalende.

bynavn virksomhedsadresse
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 ned,

DE-1234

Løsning:

Her er forespørgslen:

SELECT
   city_name,
   REPLACE(company_address, CHR(10) || CHR(13) || CHR(9), ‘ ‘)
FROM address_book;

Her er resultatet af forespørgslen:

bynavn virksomhedsadresse
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 bruges generelt til at erstatte alle forekomster af en specificeret streng i en streng med en anden streng. Du kan spørge, hvorfor vi brugte CHR(10) og CHR(13) i eksemplet ovenfor. CHR() funktion bruges til at indsætte kontroltegn i en streng. CHR(10) bruges til at indsætte linjeskift, CHR(9) er for faner og CHR(13) er til fragtretur.

I eksemplet ovenfor ønskede vi at fjerne alle forekomster af linjeskift, faneblad og vognretur, så vi brugte CHR(10) , CHR(9) og CHR(13) . De kan kombineres ved hjælp af sammenkædningstegnet i Oracle (|| ) for at fjerne alle deres forekomster i en kolonne. Et eksempel på syntaks er REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ ) .


  1. Bedste fremgangsmåder for SQL varchar kolonnelængde

  2. Opsætning af en ekstern MySQL-databaseforbindelse

  3. hvordan man sletter dublerede rækker fra en tabel i mysql

  4. Gør databaseresultatet til array