Problem:
Chcesz usunąć podział wiersza w kolumnie.
Przykład:
Nasza baza danych zawiera tabelę o nazwie address_book z danymi w kolumnach city_name i company_address . Chcesz zastąpić każdą z kart i podziałów wierszy w company_address kolumna z ‘ ‘ (spacją), aby była bardziej atrakcyjna wizualnie.
| nazwa_miasta | adres_firmy |
|---|---|
| Tokio | 15. ulica Oreo, Tokio 9870-11 |
| Warszawa | al. Marszałkowska 18, Warszawa 03-654 |
| Akra | 123 Węzeł Bananowy, Circle-Akra, 00244 |
| Berlin | 25. Aleja Mango, Azyl w dół, DE-1234 |
Rozwiązanie:
Oto zapytanie:
SELECT city_name, REPLACE(company_address, CHR(10) || CHR(13) || CHR(9), ‘ ‘) FROM address_book;
Oto wynik zapytania:
| nazwa_miasta | adres_firmy |
|---|---|
| Tokio | 15th Oreo Street, Tokio 9870-11 |
| Warszawa | Al.Marszałkowska 18, Warszawa 03-654 |
| Akra | 123 Węzeł Bananowy, Koło-Akra, 00244 |
| Berlin | 25th Mango Avenue, Asylum Down, DE-1234 |
Dyskusja:
REPLACE() Funkcja jest zwykle używana do zastępowania wszystkich wystąpień określonego ciągu w ciągu innym ciągiem. Możesz zapytać, dlaczego użyliśmy CHR(10) i CHR(13) w powyższym przykładzie. CHR() Funkcja służy do wstawiania znaków sterujących do ciągu. CHR(10) służy do wstawiania łamania linii, CHR(9) jest dla kart, a CHR(13) dotyczy powrotu karetki.
W powyższym przykładzie chcieliśmy usunąć wszystkie wystąpienia łamania wiersza, tabulatora i powrotu karetki, więc użyliśmy CHR(10) , CHR(9) i CHR(13) . Można je łączyć za pomocą znaku konkatenacji w Oracle (|| ) do usuwania wszystkich ich wystąpień w kolumnie. Przykładową składnią jest REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ ) .