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

Come sostituire una nuova riga in Oracle

Problema:

Desideri rimuovere un'interruzione di riga in una colonna.

Esempio:

Il nostro database ha una tabella denominata address_book con i dati nelle colonne city_name e company_address . Vorresti sostituire ciascuna delle schede e le interruzioni di riga in company_address colonna con ' ' (uno spazio) per renderlo visivamente più accattivante.

nome_città indirizzo_azienda
Tokyo 15th Oreo Street,

Tokio

9870-11
Varsavia 18 Marszalkowska Ave,

Varsavia

03-654
Accra 123 Giunzione a banana,

Circle-Accra,

00244
Berlino 25th Mango Avenue,

Asilo giù,

DE-1234

Soluzione:

Ecco la domanda:

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

Ecco il risultato della query:

nome_città indirizzo_azienda
Tokyo 15th Oreo Street, Tokyo 9870-11
Varsavia 18 Marszalkowska Ave, Varsavia 03-654
Accra 123 Banana Junction, Circle-Accra, 00244
Berlino 25th Mango Avenue, Asylum Down, DE-1234

Discussione:

Il REPLACE() La funzione viene generalmente utilizzata per sostituire tutte le occorrenze di una stringa specificata in una stringa con un'altra stringa. Potresti chiedere perché abbiamo usato CHR(10) e CHR(13) nell'esempio sopra. Il CHR() La funzione viene utilizzata per inserire caratteri di controllo in una stringa. CHR(10) viene utilizzato per inserire interruzioni di riga, CHR(9) è per le schede e CHR(13) è per i resi.

Nell'esempio sopra, volevamo rimuovere tutte le occorrenze dell'interruzione di riga, della tabulazione e del ritorno a capo, quindi abbiamo usato CHR(10) , CHR(9) e CHR(13) . Possono essere combinati utilizzando il segno di concatenazione in Oracle (|| ) per rimuovere tutte le loro occorrenze in una colonna. Un esempio di sintassi è REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ ) .