Проблем:
Искате да премахнете прекъсване на ред в колона.
Пример:
Нашата база данни има таблица с име address_book с данни в колоните city_name и company_address . Искате да замените всеки от разделите и прекъсванията на редовете в company_address колона с „ “ (интервал), за да стане по-привлекателна визуално.
| име_на_град | адрес_на компания |
|---|---|
| Токио | 15-та улица Орео, Токио 9870-11 |
| Варшава | Маршалковска 18, Варшава 03-654 |
| Акра | 123 Banana Junction, Кръг-Акра, 00244 |
| Берлин | 25-то Манго авеню, Asylum Down, DE-1234 |
Решение:
Ето заявката:
SELECT city_name, REPLACE(company_address, CHR(10) || CHR(13) || CHR(9), ‘ ‘) FROM address_book;
Ето резултата от заявката:
| име_на_град | адрес_на компания |
|---|---|
| Токио | 15th Oreo Street, Токио 9870-11 |
| Варшава | 18 Marszalkowska Ave, Варшава 03-654 |
| Акра | 123 Banana Junction, Circle-Accra, 00244 |
| Берлин | 25th Mango Avenue, Asylum Down, DE-1234 |
Дискусия:
REPLACE() функцията обикновено се използва за замяна на всички поява на определен низ в низ с друг низ. Може да попитате защо използвахме CHR(10) и CHR(13) в примера по-горе. CHR() функцията се използва за вмъкване на контролни знаци в низ. CHR(10) се използва за вмъкване на прекъсвания на редове, CHR(9) е за раздели и CHR(13) е за връщане на превоз.
В примера по-горе искахме да премахнем всички случаи на прекъсване на реда, на раздела и на връщане на карета, така че използвахме CHR(10) , CHR(9) и CHR(13) . Те могат да бъдат комбинирани с помощта на знака за конкатенация в Oracle (|| ) за премахване на всичките им поява в колона. Примерен синтаксис е REPLACE(string, CHR(10) || (CHR(13) || CHR(09), ‘ ‘ ) .