REGEXP REPLACE teradata для удаления чисел c слов, появляющихся в поле адреса - PullRequest
0 голосов
/ 12 февраля 2020

Я хочу извлечь название и тип улицы из поля адреса.

Input = expected output
3/14 MARKDOWN ST = MARKDOWN ST
22-23 MARKDOWN ST = MARKDOWN ST
33C MARKDOWN ST = MARKDOWN ST
33 MARKDOWN VENUE ST = MARKDOWN ST
44/11 MARKDOWN AVE = MARKDOWN AVE

Я пытался с TRIM (regexp_replace (col, '^ [0-9] | [/ -] [0-9] ')), но он удаляет только цифры Я хочу, чтобы связанные со словами слова также были удалены.

Ответы [ 2 ]

1 голос
/ 12 февраля 2020

Попробуйте это: regexp_replace(upper(<your column>),'\b([^A-Z]*\d)\w*','')

Это должно заменить любые слова, содержащие не-буквенные символы.

0 голосов
/ 12 февраля 2020

Должен ли вывод для 33 MARKDOWN VENUE ST быть MARKDOWN VENUE ST? Если это так, попробуйте следующее:

SELECT 
  myvalue, 
  REGEXP_SUBSTR(myvalue, '^.*?\s(.*)$') AS mystreet
FROM cte

У меня нет системы TD для тестирования, но попробуйте и дайте мне знать. Возможно, вам также придется поработать с аргументами совпадения.

БД Fiddle (postgres)
Ссылка

...