Мне нужно очистить поле адреса в PostgreSQL 8.4, удалив все справа от названия улицы. Это включает в себя отбрасывающие сюиты («100 Broadway Street Suite 100») и исправление имен с номерами модулей, добавленными к названию улицы («100 Broadway Street100»), так что результатом в обоих случаях будет «100 Broadway Street».PostgreSQL заменить символы справа от строки
По существу, я пытаюсь удалить все, что находится справа от «Улицы». Кажется, я не могу заставить функцию замены работать без индивидуального кодирования для каждого случая. Функция rtrim
также не работает, потому что символы, которые я хочу удалить, будут подстановочными знаками.
Вот что я пытаюсь добраться до работы:
update *tablename* set *fieldname* = replace (*fieldname*, '%STREET%', '%STREET')
Этот SQL ниже работает, но я не хочу, чтобы закодировать каждую возможную комбинацию:
UPDATE *tablename* set *fieldname* = replace (*fieldname*, ' SUITE 100', '');
UPDATE *tablename* set *fieldname* = replace (*fieldname*, ' STREET100', ' STREET');
Как я могу удалить все справа от строки «Улица» без явного указания того, что следует за «Улицей»?
Спасибо за помощь.
Спасибо за быстрые Ответить. Это работает как ожидалось. – jtodd