Problém:
Chcete odstranit konec řádku ve sloupci.
Příklad:
Naše databáze obsahuje tabulku s názvem address_book s údaji ve sloupcích city_name a company_address . Chtěli byste nahradit každou z karet a zalomení řádků v company_address sloupec s „ “ (mezera), aby byl vizuálně přitažlivější.
| city_name | adresa_společnosti |
|---|---|
| Tokio | 15th Oreo Street, Tokio 9870-11 |
| Varšava | 18 Marszalkowska Ave, Varšava 03-654 |
| Accra | 123 Banana Junction, Circle-Accra, 00244 |
| Berlín | 25th Mango Avenue, Asylum Down, DE-1234 |
Řešení:
Zde je dotaz:
SELECT city_name, REPLACE(company_address, CHR(10) || CHR(13) || CHR(9), ‘ ‘) FROM address_book;
Zde je výsledek dotazu:
| city_name | adresa_společnosti |
|---|---|
| Tokio | 15th Oreo Street, Tokio 9870-11 |
| Varšava | 18 Marszalkowska Ave, Varšava 03-654 |
| Accra | 123 Banana Junction, Circle-Accra, 00244 |
| Berlín | 25th Mango Avenue, Asylum Down, DE-1234 |
Diskuse:
REPLACE() Funkce se obecně používá k nahrazení všech výskytů zadaného řetězce v řetězci jiným řetězcem. Můžete se zeptat, proč jsme použili CHR(10) a CHR(13) ve výše uvedeném příkladu. CHR() funkce se používá k vložení řídicích znaků do řetězce. CHR(10) se používá pro vkládání zalomení řádků, CHR(9) je pro karty a CHR(13) je pro vrácení vozíku.
Ve výše uvedeném příkladu jsme chtěli odstranit všechny výskyty konce řádku, tabulátoru a konce řádku, takže jsme použili CHR(10) , CHR(9) a CHR(13) . Lze je kombinovat pomocí znaku zřetězení v Oracle (|| ) pro odstranění všech jejich výskytů ve sloupci. Příklad syntaxe je REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ ) .