Подстрока Teradata До и После определенного символа - PullRequest
0 голосов
/ 18 декабря 2018

Я ищу способ извлечь текст, который находится до и после определенного символа в Teradata.Например, у меня есть непротиворечивый столбец, за исключением слова в середине, которое я хочу извлечь.

У меня есть два примера:

  1. "DD, активированный клиентом DD: ABCD, НА ДАТУ XXXX "
  2. " Активированная пользователем учетная запись DD: EFGH, НА ДАТУ XXXX "

Мне нужен текст, который существует сразу после": "и до", "- в этом случае ABCD или EFGH.Пока у меня есть SUBSTRING (column FROM POSITION ('DD: ' IN column) +4), но это возвращает все после ":", как ABCD, ON DATE XXXX.

Ответы [ 2 ]

0 голосов
/ 21 декабря 2018

Я согласен, что regexp_substr лучше в этом случае.Если бы ваш разделитель был исправлен, strtok может быть весьма полезным.В вашем случае это может сработать:

STRTOK(STRTOK(column,':',2),',',1)

Первый аргумент - входная строка / столбец;второй разделитель;и третий номер наблюдения n.

0 голосов
/ 18 декабря 2018

Вы можете использовать Регулярное выражение для извлечения информации между ':' & ',' для данного требования.

SELECT regexp_substr('Customer Activated Account DD: EFGH, ON DATE XXXX','[^:,]+',1,2);
SELECT regexp_substr('Customer Activated Account DD: ABCD, ON DATE XXXX','[^:,]+',1,2);

[^ :,] используется для разделения строки, а затем слова второй позицииэто требуемый вывод

...